--- /dev/null
+data Either a b = Left a | Right b\r
+\r
+data List a = Nil | Cons a (List a)\r
+\r
+data Nat = Zero | Succ Nat\r
+\r
+sum Zero a = a\r
+sum a Zero = a\r
+sum (Succ a) (Succ b) = Succ (Succ (sum a b))\r
+\r
+sum_append xs ys\r
+ = go Zero (Left xs)\r
+ where\r
+ go z (Left xs)\r
+ = match xs with\r
+ Nil -> go z (Right ys)\r
+ Cons x xs' -> go (sum x z) (Left xs')\r
+ go z (Right ys)\r
+ = match ys with\r
+ Nil -> z\r
+ Cons y ys' -> go (sum y z) (Right ys')\r
+\r
+main = "Hello world!"\r
+--\r
+Hello world!
\ No newline at end of file