Functor => Applicative => Monad

John Smith voldermort at
Wed Dec 22 20:17:39 CET 2010

On 22/12/2010 19:03, Simon Marlow wrote:
> On 14/12/2010 08:35, Isaac Dupree wrote:
>> On 12/14/10 03:13, John Smith wrote:
>>> I would like to formally propose that Monad become a subclass of
>>> Applicative, with a call for consensus by 1 February. The change is
>>> described on the wiki at
>> That page isn't written as a proposal yet, it's written as a bunch of
>> ideas. I would be happy to see something along the lines of Bas van
>> Dijk's work
>> .
> This is a proposal with far-reaching consequences, and with several alternative designs. I'm not sure I understand all
> the tradeoffs. Some parts of the proposal are orthogonal to the rest (e.g. changing fmap to map), and should probably be
> considered separately.
> Could someone please write a detailed proposal, enumerating all the pros and cons, and the rationale for this design
> compared to other designs?
> Cheers,
> Simon

The wiki page was admittedly too broad of scope when I first wrote it, and it's getting broader with time.

The ticket at has patches for only one change, making Monad a subclass 
of Applicative. (I would update the description to make this clear, but I can't edit the ticket description, so this has 
been relegated to a comment.)

More information about the Libraries mailing list