1data Tree a = Leaf a | Branch (Tree a) (Tree a)
2
3instance Functor Tree where
4   fmap fab (Leaf a) = Leaf (fab a)
5   fmap fab (Branch tr' tr_a) = Branch (fmap fab tr') (fmap fab tr_a)
6