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