[Haskell-cafe] Re: how do you deal with mplus?

apfelmus apfelmus at quantentunnel.de
Thu Oct 9 14:20:04 EDT 2008

Daryoush Mehrtash wrote:
> Assuming A, B, C are monadic operation.   How do you read the following
> function:
>     do
>         A 'mplus'  B
>         C
> I expect this to translate to:
> (A 'mplus' B) >>= C

It translates to

   (A `mplus` B) >> C

> Can I then say it is equivalent to:
>   (A >>=C)  mplus (B >>=C)

Sounds like a desirable law, but it doesn't always hold. See also


Currently, there's no consensus concerning the laws that MonadPlus
should obey.


More information about the Haskell-Cafe mailing list