Proposal #2316: Add Applicative instances for all MTL Monads
Spencer Janssen
sjanssen at cse.unl.edu
Thu May 29 14:53:26 EDT 2008
On Thu, May 29, 2008 at 06:44:12AM -0400, Isaac Dupree wrote:
> Spencer Janssen wrote:
>> This proposal is very straightforward: add Applicative instances for all the
>> Monads in the MTL.
>
> It's not quite as straightforward as it looks:
> If you only need an
> instance (Applicative m) => Applicative (Transformer m),
> not
> instance (Monad m) => Applicative (Transformer m),
> will you use the first one? (I think yes.)
>
> -Isaac
Note that each of the Functor instances for the transformers require (Monad m).
Because Functor is a superclass of Applicative, the Applicative instances must
also have the (Monad m) constraint. We can change the Functor instances, but
it does break backwards compatibility (not all Monads are Functors).
Cheers,
Spencer Janssen
More information about the Libraries
mailing list