Binary trees in Haskell