
2011/1/2 Isaac Dupree
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
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@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