[Haskell-cafe] How to define a Monad instance