Jake McArthur wrote:
Andrew Coppin wrote:
I was thinking more, why not just delete MonadPlus completely, and have any function that needs a monad that's also a monoid say so in its context? (Obviously one of the answers to that is "because it would break vast amounts of existing code".)
Because they are not the same. MonadPlus has more restrictions than Monoid. For an instance of the form "instance MonadPlus m where", m a _must_ be a Monoid for _all_ a, whereas "instance Monoid (m a) where" may be defined for some specific a instead.

OK, fair enough then.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to