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

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to