Functor => Applicative => Monad

Isaac Dupree ml at isaac.cedarswampstudios.org
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.

-Isaac



More information about the Libraries mailing list