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, fThis 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 . . .
RecContext.hs
Description: Binary data
