Fix Trac #3017: ensure that we quantify over enough type variables when equalities...
authorsimonpj@microsoft.com <unknown>
Wed, 11 Feb 2009 17:47:33 +0000 (17:47 +0000)
committersimonpj@microsoft.com <unknown>
Wed, 11 Feb 2009 17:47:33 +0000 (17:47 +0000)
The function FunDeps.grow was not doing the right thing when type equality
constraints were involved.  That wasn't really its fault: its input was
being filtered by fdPredsOfInsts.

To fix this I did a bit of refactoring, so that the (revolting) fdPredsOfInsts
is now less important (maybe we can get rid of it in due course).  The 'grow'
function moves from FunDeps to
 Inst.growInstsTyVars
 TcMTType.growThetaTyVars
 TcMType.growTyVars

The main comments are with the first of these, in
Note [Growing the tau-tvs using constraints] in Inst.

Push to the branch if conflict free.


No differences found