PROPOSAL: Make Applicative a superclass of Monad

ajb at ajb at
Tue Jun 24 19:51:40 EDT 2008

G'day all.

Quoting Isaac Dupree <isaacdupree at>:

> Is there any practical way we can make this change while still making
> it possible to compile Haskell98 programs at all?

This is being redirected to haskell-prime, of course, however, while we're
on the topic, it needs to be said yet again:

It's a severe pain to make class hierarchies more granular if you have
to declare an instance for all of them.  I support the principle of
making Applicative a superclass of Monad.  However, I don't want to
have to declare an instance for Functor and Applicative just to declare
an instance for Monad.

There are obvious defaults, and I should be able to get them with no
effort, or at the very least, no more effort than a "deriving"-like

Andrew Bromage

More information about the Libraries mailing list