[Proposal] Move most of Control.Monad to Control.Applicative

Ashley Yakeley ashley at semantic.org
Sat Jul 11 19:06:06 EDT 2009

Achim Schneider wrote:
 > Conal Elliott <conal at conal.net> wrote:
 >> Exactly.  and <*>, liftA, liftA2, ...
 > I think it's safe to say that there's a general consensus that Functor
 > not being a superclass of Monad is a regrettable historical ward that
 > ought to be fixed... the problem with fixing it is that it opens up a
 > whole can of worms, only starting with whether or not Pointed should be
 > a class by itself: While the Proper Way might be to include all of
 > category-extras in the Prelude, the Proper Way might not at all be the
 > Right Way.

I proposed this a year ago, but got no traction because people insisted 
on some extension called "class aliases" so they wouldn't have to write 
this piece of code:

   class Functor MyMonad where
     fmap = liftM
   class Applicative MyMonad where
     <*> = ap

See http://thread.gmane.org/gmane.comp.lang.haskell.prime/2641/

Ashley Yakeley

More information about the Haskell-prime mailing list