[Haskell-cafe] How to define a common return and bind?