#include "HsVersions.h"
+import {-# SOURCE #-} TcUnify( unifyTauTy )
+
import HsSyn ( MonoBinds(..), HsExpr(..), andMonoBinds, andMonoBindList )
import TcHsSyn ( TcExpr, TcId,
TcMonoBinds, TcDictBinds
)
import TcEnv ( tcGetGlobalTyVars, tcGetInstEnv )
import InstEnv ( lookupInstEnv, classInstEnv, InstLookupResult(..) )
-
-import TcMType ( zonkTcTyVarsAndFV, tcInstTyVars, unifyTauTy )
+import TcMType ( zonkTcTyVarsAndFV, tcInstTyVars )
import TcType ( TcTyVar, TcTyVarSet, ThetaType, PredType,
mkClassPred, isOverloadedTy,
mkTyVarTy, tcGetTyVar, isTyVarClassPred,
where
-- For implicit parameters, all occurrences share the same
-- Id, so there is no need for synonym bindings
+ -- ** BUT THIS TEST IS NEEDED FOR DICTS TOO ** (not sure why)
new_binds | new_id == id = binds
| otherwise = addBind binds new_id (HsVar id)
new_id = instToId w