[Haskell-cafe] Four Designs for a Monad