[Haskell-cafe] known, I know: class contexts and mutual recursion
Ian Lynagh
igloo at earth.li
Mon Dec 4 12:21:15 EST 2006
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
More information about the Haskell-Cafe
mailing list