[Haskell-cafe] A monad using IO, Reader, Writer, State and Error