Functor => Applicative => Monad

Isaac Dupree ml at
Sun Dec 12 20:22:41 CET 2010

On 12/12/10 12:33, Antoine Latter wrote:
> Are there any ways to make this sort of change not break things? There
> has been talk about a language extensions to make this thing work out,
> but they have never been fleshed out, and they've always been the sort
> that sounded like they would have many corner cases.

We could add a warning to GHC, "warning: Monad instance exists in this 
module without corresponding Applicative and Functor instance" and the 
like.  Then change could be more gradual (e.g. people might apply things 
like your ghc-patch, base-patch, etc. that increase compatibility).

(Not sure if it's a good idea, just throwing it out there.)

We should also check the performance, if using default method 
definitions of any stripe.  Many things rely on good Monad performance 
at least.


More information about the Libraries mailing list