Hello,<div>I think that reorganizing the Monad/Applicative/Functor classes is a good idea, despite the fact that it would break lots of code.  However, I think that it would be useful if there was a wiki page which describes the proposal exactly, so that we can discuss the details (having the patches is nice, but they are hard to read).</div>
<div>-Iavor<br><br><div class="gmail_quote">On Sun, Jan 2, 2011 at 4:04 AM, John Smith <span dir="ltr">&lt;<a href="mailto:voldermort@hotmail.com">voldermort@hotmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The patches attached to <a href="http://hackage.haskell.org/trac/ghc/ticket/4834" target="_blank">http://hackage.haskell.org/trac/ghc/ticket/4834</a> make Applicative a superclass of Monad. Default definitions are provided for backwards compatibility.<br>

<br>
Advantages: The class hierarchy correctly models the logical relationship between Applicative and Monad.<br>
            Boilerplate Applicative instances that duplicate Monad functions will no longer be required.<br>
<br>
Disadvantage: All Monads will be Applicatives, even if you&#39;re only interested in the Monad interface. This is akin to all Ords being Eqs, even if you&#39;re not using ==.<br>
<br>
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.<br>

<br>
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.<br>
<br>
Please note that although the ticket references the wiki page at <a href="http://haskell.org/haskellwiki/Functor-Applicative-Monad_Proposal" target="_blank">http://haskell.org/haskellwiki/Functor-Applicative-Monad_Proposal</a>, 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&#39;t edit it.)<br>

<br>
<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</blockquote></div><br></div>