X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRules.lhs;h=b2c1dac62088a88cd7eaa1d42857b4a95a883821;hp=81c018a1183a3e21ff7af8f2521004f0fbaa94b0;hb=27310213397bb89555bb03585e057ba1b017e895;hpb=fd6de028d045654e42dc375e8c73b074c530f883 diff --git a/compiler/typecheck/TcRules.lhs b/compiler/typecheck/TcRules.lhs index 81c018a..b2c1dac 100644 --- a/compiler/typecheck/TcRules.lhs +++ b/compiler/typecheck/TcRules.lhs @@ -91,7 +91,8 @@ tcRule (HsRule name act hs_bndrs lhs fv_lhs rhs fv_rhs) -- c.f. TcSimplify.simplifyInfer ; zonked_forall_tvs <- zonkTcTyVarsAndFV forall_tvs ; gbl_tvs <- tcGetGlobalTyVars -- Already zonked - ; qtvs <- zonkQuantifiedTyVars (varSetElems (zonked_forall_tvs `minusVarSet` gbl_tvs)) + ; qtvs <- zonkQuantifiedTyVars $ + varSetElems (zonked_forall_tvs `minusVarSet` gbl_tvs) ; return (HsRule name act (map (RuleBndr . noLoc) (qtvs ++ tpl_ids)) -- yuk @@ -111,7 +112,7 @@ tcRuleBndrs (RuleBndrSig var rn_ty : rule_bndrs) -- a::*, x :: a->a = do { let ctxt = FunSigCtxt (unLoc var) ; (tyvars, ty) <- tcHsPatSigType ctxt rn_ty - ; let skol_tvs = tcSkolSigTyVars (SigSkol ctxt) tyvars + ; let skol_tvs = tcSuperSkolTyVars tyvars id_ty = substTyWith tyvars (mkTyVarTys skol_tvs) ty id = mkLocalId (unLoc var) id_ty