
21 Sep
2006
21 Sep
'06
3:58 p.m.
Consider the following: data SimpExist a = SimpExist (forall x . x -> a) f :: SimpExist Bool f = SimpExist (const True) g = SimpExist id What is the type of g? In a similar example, GHC tells me it is of type SimpExist c. Yet, I can't unify it with any other SimpExist c'. It seems to me that this is something like exists x . SimpExist x, and is similar to: data ExistWrap = forall a . ExistWrap (forall x . x -> a) Jim