[Haskell-cafe] monads with take-out options