Proposal: Applicative => Monad: Call for consensus

Alexander Dunlap alexander.dunlap at gmail.com
Mon Jan 3 05:33:39 CET 2011


2011/1/2 Isaac Dupree <ml at isaac.cedarswampstudios.org>:
> 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 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.
>>>
>>> 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.
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>

How about some magic to automatically declare an Applicative
superclass if it doesn't already exist?

Alexander Dunlap



More information about the Libraries mailing list