1 > data Boolean = FF | TT
2 > data Pair a b = MkPair a b
3 > data LList alpha = Nill | Conss alpha (LList alpha)
4 > data Nat = Zero | Succ Nat
5 > data Tree x = Leaf x | Node (Tree x) (Tree x)
6 > data A a = MkA a (A a)
8 > append :: LList a -> LList a -> LList a
9 > append xs ys = case xs of
10 > Conss z zs -> Conss z (append zs ys)