Proposal: Applicative => Monad: Call for consensus
aslatter at gmail.com
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.
On Sun, Jan 2, 2011 at 6:04 AM, John Smith <voldermort at hotmail.com> wrote:
> The patches attached to http://hackage.haskell.org/trac/ghc/ticket/4834 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
> 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
> http://haskell.org/haskellwiki/Functor-Applicative-Monad_Proposal, 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 haskell.org
More information about the Libraries