In opposition of Functor as super-class of Monad

Duncan Coutts duncan.coutts at
Wed Oct 24 12:35:57 CEST 2012

On 24 October 2012 11:16, S. Doaitse Swierstra <doaitse at> wrote:
> There are very good reasons for not following this road; indeed everything which is a Monad can also be made an instance of Applicative. But more often than not we want to have a more specific implementation. Because Applicative is less general, there is in general more that you can do with it.

I don't think anyone is suggesting that we force all type that are
both Monad and Applicative to use (<*>)  = ap as the implementation.
As you say, that'd be crazy.

The details and differences between the various superclass proposals
are to do with how you provide the explicit instance vs getting the

The wiki page explains it and links to the other similar proposals:


More information about the Haskell-prime mailing list