data Bool = { True, False } data List = { Nil, Cons Int List } defn if c t e = { case c of { True -> { t } False -> { e } } } defn oddEven l e = { case l of { Nil -> { e } Cons x xs -> { evenOdd xs e } } } defn evenOdd l e = { case l of { Nil -> { e } Cons x xs -> { oddEven xs e } } } defn main = { if (oddEven (Cons 1 (Cons 2 (Cons 3 Nil))) True) (oddEven (Cons 1 (Cons 2 (Cons 3 Nil))) 1) 3 }