Hello everyone,
I have some operations that have to be done in sequence, with
each one having the result of the previous as input.
They can fail, so they have signature a -> Maybe b
Checking for error can be quite tedious so I use monadic operations:
f :: a -> Maybe b do y <- foo x z <- boo y moo z
The problems arise when I try to do the same thing within the IO Monad, i.e. the functions have signature a->IO (Maybe b)
How can I achieve the same effect (if it is ever possible)? I feel like it should be something almost trivial, but I really can't get it.
Hi.
How about giving your functions the type
a -> IO b
and representing failure with either 'fail', 'ioError' or 'throwError'? They propagate the same way as Nothing in the Maybe monad.
http://www.haskell.org/ghc/docs/latest/html/libraries/base/System.IO.Error.html#6 http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control.Monad.Error.html
Regards, Tom
_______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe