MonadPlus is `or` semantics, as is Alternative. It does, indeed, reflect the Applicative/Monad difference.<br><br><div class="gmail_quote">On Sat, Oct 29, 2011 at 8:02 PM, Gregory Crosswhite <span dir="ltr">&lt;<a href="mailto:gcrosswhite@gmail.com">gcrosswhite@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">Hey everyone,<div><br></div><div>What is the difference between MonadPlus and Alternative?  In my mind, it would make sense for the difference to be that the former provides &quot;and&quot; semantics (i.e., x `mplus` y means do both x and y) whereas the latter provides &quot;or&quot; semantics (i.e., x &lt;|&gt; 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.</div>
<div><br></div><div>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?</div>
<div><br></div><div>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.)</div><div><br>
</div><div>Thanks!</div><div>Greg</div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>