[Haskell-cafe] known, I know: class contexts and mutual recursion
Simon Peyton-Jones
simonpj at microsoft.com
Fri Dec 8 10:48:49 EST 2006
| > 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?
Yes, it'll work in 6.6, and it's even documented (at the end of the section on type-system extensions). I'll add a suggestion to the error message to use -fglasgow-exts
Simon
More information about the Haskell-Cafe
mailing list