Functor => Applicative => Monad

John Smith voldermort at
Tue Dec 14 09:38:04 CET 2010

On 14/12/2010 10:24, Krasimir Angelov wrote:
> This proposal will break every module which declares a monad instance
> for some type. I expect that there will be many many broken
> applications. Furthermore, if the only thing that I need is a monad
> instance for some type, it is tedious do define Functor and
> Applicative as well.

This would break a lot of code, but this seems to happen anyway; most of hackage is broken on recent GHC.

How many Monads are not instances of Applicative? These are the Monads which would require extra work, whereas the 
Applicative Monads would require less. (Most Monads are currently defined twice; once as Monads, then boilerplate 
instances for Applicative Functors.)

More information about the Libraries mailing list