data Tree a = Leaf a | Branch (Tree a) (Tree a) main = print (height our_tree) where our_tree :: Tree Int our_tree = Branch (Branch (Leaf 1) (Branch (Branch (Leaf 1) (Leaf 1)) (Leaf 1))) (Branch (Leaf 1) (Leaf 1)) height :: Tree a -> Int height (Leaf _) = 1 height (Branch t1 t2) = 1 + max (height t1) (height t2)