#4159: move Monad and MonadFix instances for Either from mtl to base

Ross Paterson ross at soi.city.ac.uk
Wed Jun 30 18:41:31 EDT 2010


On Wed, Jun 30, 2010 at 05:46:27PM -0400, Edward Kmett wrote:
> With that change, the mtl is no longer defining instances for any types it
> doesn't own!

Not quite -- there are still two orphans:

instance MonadPlus IO
instance (Error e) => MonadPlus (Either e)

> In that vein it makes sense that the basic error type used by
> transformer-centric should ALSO be a type alias wrapped around ErrorT, rather
> than an abuse of a prelude type.

Indeed, and the ideal name for the type alias would be ...?

I'm starting to think it would be best for transformers to start over
on this monad, say with a new unconstrained ExceptT/Except, beside ErrorT.


More information about the Libraries mailing list