
On Wed, Nov 29, 2006 at 06:14:56PM +0000, Conor McBride wrote:
Mmm.lhs:15:1: Contexts differ in length When matching the contexts of the signatures for foo :: forall (m :: * -> *). (Monad m) => Thing -> m Int goo :: Thing -> (Maybe Int -> Int) -> Int The signature contexts in a mutually recursive group should all be identical
Poking about on the web, I got the impression that this was a known infelicity in ghc 6.4 (which I'm using), due to be ironed out. However, an early-adopting colleague with 6.6 alleges that foo-goo is still poisonous.
You can compile it with 6.6 if you use -fglasgow-exts. It's not clear to me whether this will always work, e.g. if you have higher rank types floating around, but if it does then we should add a hint to the error; Simon?
I'm wondering what the story is. I mean, is there some nasty problem lurking here which prevents the lifting of this peculiar restriction?
I don't know either, but this sounds like a good thing to bring up for Haskell' if no-one has already. Thanks Ian