The attached file doesn't compile (ghc -fglasgow-exts), with the message

RecContext.hs:12:
    Mismatched contexts
    When matching the contexts of the signatures for
      g :: forall a b. (Silly a b) => a -> b -> SillyType a -> [String]
      f :: forall a. SillyType a -> [String]
    The signature contexts in a mutually recursive group should all be identical
    When generalising the type(s) for g, f


This seems strange.  f can't have the context Silly a b, as b doesn't occur in its
signature and is introduced later as part of an existential constructor . . .

I know this code looks pretty pointless.  If you want to see the Real World 450 line
module which provoked the message, do ask, but only if you like having your brain
curdled by mixtures of dependent types, existential types and overlapping 
multi-parameter
type classes . . .

Attachment: RecContext.hs
Description: Binary data

Reply via email to