
Achim Schneider wrote:
Conal Elliott
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