#4159: move Monad and MonadFix instances for Either from mtl to
twhitehead at gmail.com
Wed Jun 30 10:25:43 EDT 2010
On June 29, 2010 18:32:51 Edward Kmett wrote:
> 'Either' takes on the connotation of being the 'sum type' for the category
> of Haskell types. This sum type has a very well formed and simple monad,
> that has a lot of useful theoretical properties, and is useful in a
> strictly larger array of scenarios than the monad with the error
> constraint, with the one notable exception that it doesn't handle the
> 'fail' property that was bolted into Monad in Haskell 98.
On the topic of 'fail' being an abomination, is there any hope of fixing this?
Perhaps it could be pushed it into it's own type class, which would then
required by the do notation? Exactly like mdo required MonadFix. I
understand there was one called MonadZero for this at some time?
I could see one route would be to add a compiler flag that would switch the do
notation requirement from Monad to MonadZero. Instances could then be added
to code until at some point it could become the default. A bit longer after
that, it could be dropped altogether along with fail in the Monad class.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://www.haskell.org/pipermail/libraries/attachments/20100630/39fbd585/attachment.bin
More information about the Libraries