[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

  http://www.haskell.org/haskellwiki/MonadPlus

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


Regards,
apfelmus



More information about the Haskell-Cafe mailing list