Proposal: Applicative => Monad: Call for consensus

Isaac Dupree ml at
Mon Jan 3 04:04:50 CET 2011

On 01/02/11 12:50, John Smith wrote:
> On 02/01/2011 19:14, David Menendez wrote:
>> On Sun, Jan 2, 2011 at 7:04 AM, John Smith<voldermort at> wrote:
>>> The patches attached to
>>> make
>>> Applicative a superclass of Monad. Default definitions are provided for
>>> backwards compatibility.
>> Monad is defined in the Haskell 98 and Haskell 2010 reports. How are
>> you planning to maintain compatibility with them?
> The Haskell' process expects proposals to have already been implemented,
> so I'll propose it there after acceptance by GHC. If the patches are
> accepted for HEAD, this may be adequate for proposing towards the next
> Haskell report, so GHC and the report will only be out of sync for a
> minimal time.

Even GHC 7.100 is intended to maintain compatibility with Haskell 98. 
We desire a way to implement the change that allows Haskell 98 and 
Haskell 2010 programs to compile unchanged, *even if* Haskell 2011 
Report includes libraries with a Monad hierarchy change.

The naive way to do this is to make a different Monad class, without any 
superclasses, and put it in the haskell98 package.  This has the general 
issue that instances of the two "class Monad"s aren't compatible.  I 
think it also has a particular difficulty related to "do"-notation.

More information about the Libraries mailing list