
On 15 Dec 2010, at 17:48, Brent Yorgey wrote:
On Wed, Dec 15, 2010 at 06:25:30PM +0100, Maciej Piechotka wrote:
On Wed, 2010-12-15 at 13:51 +0200, John Smith wrote:
On 15/12/2010 11:39, Lennart Augustsson wrote:
Any refutable pattern match in do would force MonadFail (or MonadPlus if you prefer). So
[..]
As far as type inference and desugaring goes, it seems very little would have to be changed in an implementation.
Is there a need for a MonadFail, as distinct from mzero? fail always seems to be defined as error in ordinary monads, and as mzero in MonadPlus (or left at the default error).
Not all types can implement mplus to begin with even if they can have 'zero' type. For example technically Maybe breaks the laws while still having useful fail:
[..]
But that depends on what laws you choose for MonadPlus. See http://www.haskell.org/haskellwiki/MonadPlus .
What has any of this to do with monads? Cheers Conor