Proposal: Applicative => Monad: Call for consensus

Antoine Latter aslatter at
Sun Jan 2 16:19:27 CET 2011

Are there patches somewhere to implement all of this in GHC?
Particularly the MonadFail changes, as that is a change to how the
compiler works - not just a change to libraries.

Also, that wiki seems to be two different proposals - one with the
Pointed class and one without.

Take Care,

On Sun, Jan 2, 2011 at 6:04 AM, John Smith <voldermort at> wrote:
> The patches attached to make
> Applicative a superclass of Monad. Default definitions are provided for
> backwards compatibility.
> Advantages: The class hierarchy correctly models the logical relationship
> between Applicative and Monad.
>            Boilerplate Applicative instances that duplicate Monad functions
> will no longer be required.
> Disadvantage: All Monads will be Applicatives, even if you're only
> interested in the Monad interface. This is akin to all Ords being Eqs, even
> if you're not using ==.
> Backwards Compatibility: Existing Monad definitions will have to be changed
> to declare Applicative. The original function bodies can be used unchanged,
> but they are now declared in a different class. Calling code should work
> unchanged.
> This ticket has already been discussed on the mailing lists. The purpose of
> this message is to call for consensus by the deadline of 1 February.
> Please note that although the ticket references the wiki page at
>, the
> patches attached to the ticket are much more conservative than the more
> ambitious reforms on the wiki. (I would like to change the ticket
> description to make this clearer, but I can't edit it.)
> _______________________________________________
> Libraries mailing list
> Libraries at

More information about the Libraries mailing list