[Haskell-cafe] type checking that I can't figure out ....
wren ng thornton
wren at freegeek.org
Thu Jun 4 03:52:12 EDT 2009
Daniel Peebles wrote:
> Yeah, in a way similar to ArrowPlus/ArrowZero. Then again, I'm not
> sure whether it would be meaningful to split up MonadPlus like that.
Well, we could always have: class MonadZero m => MonadPlus m
The suggestion is just to broaden the scope of mzero so that you can
have it without requiring mplus as well (since mplus is much more
specific than mzero).
If we have a MonadZero, then the call to fail when pattern binds fail
could be replaced with calls to mzero (or at the very least, fail can be
moved to MonadZero as well to clean up Monad). Then Monad is clean and
accurate, and people just depend on MonadZero if they choose to do
pattern binds rather than catching all patterns with a case expression.
More information about the Haskell-Cafe