[Haskell-beginners] proving fmap law for recursive data types