[Haskell-beginners] Monad transformers and MonadPlus

Daniel Fischer daniel.is.fischer at web.de
Fri Jul 30 08:48:17 EDT 2010


On Friday 30 July 2010 13:56:44, Antoine Latter wrote:
> You could always add a MondPlus instance to IO directly (or a newtype
> wrapper).
>
> 'mplus' would set up exception handling and 'mzero' would through an
> exception. You might want to limit it to a subset of exceptions, though.

Once upon a time, there was a MonadPlus instance for IO.
However, one of the laws a MonadPlus instance should satisfy is

m >> mzero === mzero

You can't have that in IO, since there's no unPutStrLn and such.
Therefore, the MonadPlus instance for IO was removed.


More information about the Beginners mailing list