[Haskell-cafe] How to combine Error and IO monads?