PROPOSAL: Make Applicative a superclass of Monad

John Meacham john at
Fri Jun 27 20:16:56 EDT 2008

On Thu, Jun 26, 2008 at 06:25:28PM -0700, Ashley Yakeley wrote:
> I wrote:
>> Proposal:
>> Make Applicative (in Control.Applicative) a superclass of Monad (in 
>> Control.Monad).
> So does the "silence = approval" rule apply here?

I think that people believe this is generally a good idea, but until the
actual language that is haskell' is formalized, library issues are on
the backburner. But yeah, I think cleaning up various things about the
haskell 98 class hierarchy is a good idea. 

Even if class aliases are not in the standard itself but this change
was, implementing class aliasse would allow individual compilers to
provide full back and forwards compatability with haskell 98 and

So, that might be a route to having our cake and eating it too. We can
have the benefit of class aliases without having to break the haskell'
rules and standardize such an immature extension since they were
designed to be 'transparent' to code that doesn't know about them.
Haskell 98 code, and conformant haskell' prime code (as in, code that
doesn't explicitly mention class aliases) will coexist peacefully and we
will get a lot of experience using class aliases for when they
eventually perhaps do get standardized.


John Meacham - ⑆⑆john⑈

More information about the Haskell-prime mailing list