MonadPlus is `or` semantics, as is Alternative. It does, indeed, reflect
the Applicative/Monad difference.

On Sat, Oct 29, 2011 at 8:02 PM, Gregory Crosswhite
<gcrosswh...@gmail.com>wrote:

> Hey everyone,
>
> What is the difference between MonadPlus and Alternative?  In my mind, it
> would make sense for the difference to be that the former provides "and"
> semantics (i.e., x `mplus` y means do both x and y) whereas the latter
> provides "or" semantics (i.e., x <|> y means do x or y but not both).
>  However, when I look at the instances defined for List I see that it is
> exactly the same as MonadPlus.
>
> So is there any difference between the interpretation of MonadPlus and
> Alternative, or is the only difference between them that the former applies
> to Monad whereas the latter applies to Applicative?
>
> Also, along similar lines, why does MonadPlus exist when it is essentially
> just a special case of Monoid?  (That is, any MonadPlus instance could be
> equivalently cast as a Monoid instance.)
>
> Thanks!
> Greg
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to