data List a = { Nil, Cons a (List a) } defn sum l = { case l of { Nil -> { 0 } Cons x xs -> { x + sum xs} } } defn map f l = { case l of { Nil -> { Nil } Cons x xs -> { Cons (f x) (map f xs) } } } defn main = { sum (map \x -> { x * x } (map (\x -> { x + x }) (Cons 1 (Cons 2 (Cons 3 Nil))))) }