Add Applicative instances for MTL types

Bas van Dijk v.dijk.bas at
Thu Jan 15 04:49:20 EST 2009

On Wed, Jan 14, 2009 at 7:56 PM, David Menendez <dave at> wrote:
> No, in your definition, the effects of the transformed applicative
> functor are evaluated regardless of the error condition.
> Try this code:
>    runState (runErrorT (throwError "!" <*> put False)) True
> The first definition of <*> returns (Left "!", True). The second
> returns (Left "!", False).

I see it now. Thanks for correcting me.

Then we should consider the first patch by Spencer Janssen again which
satisfies these laws:

pure  = return
(<*>) = ap



More information about the Libraries mailing list