data Bin a = Leaf | Branch (Bin a) a (Bin a)
data List a = Nil | Cons a (List a)
data Tree a = Node a (List (Tree a))