> I think it's a bug when a compiler doesn't
> understand an intermediate file it generated a
> few minutes before. According to GHC:
It's a bug all right. I've just fixed it. In principle there
is absolutely nothing wrong with types like
zdfHasTextWindow :: __forall [v]
{GUIValue.GUIValue v, GUIState.GUIObject
Window} =>
{GUIBaseClasses.HasText Window v}
but at the moment GHC doesn't let you write them. This one
arose because (I think) you had something like
class GUIObject w => HasText w v where ...
instance GUIValue v => HasText Window v where ...
The dictionary function arising from the instance decl takes
no only the GUIValue v dictionary, but also the superclasses
of HasText, in this case (GUIObject Window); but since the latter
is constant there's no point in passing it.
If you update your compiler later today you should get the
new code (it's in mkDictFunId in MkId.lhs).
Thanks for reporting it.
Simon