X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcSimplify.lhs;h=d8be2d1178e6b97316aab36fe27bf3fd705c1717;hb=bff88b3a5bf96eea57e99a09774a74bd18cf4e13;hp=d7da17f67b359704d61bffda5f9c49d3c9936406;hpb=af2e0d24abe49e06fdee4a95530af8a5c33da4a3;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcSimplify.lhs b/compiler/typecheck/TcSimplify.lhs index d7da17f..d8be2d1 100644 --- a/compiler/typecheck/TcSimplify.lhs +++ b/compiler/typecheck/TcSimplify.lhs @@ -185,7 +185,7 @@ simplifyInfer :: Bool -- Apply monomorphism restriction TcEvBinds) -- ... binding these evidence variables simplifyInfer apply_mr tau_tvs wanted | isEmptyBag wanted -- Trivial case is quite common - = do { zonked_tau_tvs <- zonkTcTyVarsAndFV (varSetElems tau_tvs) + = do { zonked_tau_tvs <- zonkTcTyVarsAndFV tau_tvs ; gbl_tvs <- tcGetGlobalTyVars -- Already zonked ; qtvs <- zonkQuantifiedTyVars (varSetElems (zonked_tau_tvs `minusVarSet` gbl_tvs)) ; return (qtvs, [], emptyTcEvBinds) } @@ -202,7 +202,7 @@ simplifyInfer apply_mr tau_tvs wanted <- simplifyAsMuchAsPossible SimplInfer zonked_wanted ; gbl_tvs <- tcGetGlobalTyVars - ; zonked_tau_tvs <- zonkTcTyVarsAndFV (varSetElems tau_tvs) + ; zonked_tau_tvs <- zonkTcTyVarsAndFV tau_tvs ; zonked_simples <- mapBagM zonkWantedEvVar simple_wanted ; let qtvs = findQuantifiedTyVars apply_mr zonked_simples zonked_tau_tvs gbl_tvs (bound, free) | apply_mr = (emptyBag, zonked_simples) @@ -236,7 +236,7 @@ simplifyAsMuchAsPossible ctxt wanteds simplifyApproxLoop 0 wanteds -- Report any errors - ; mapBagM_ reportUnsolvedImplication unsolved_implics + ; reportUnsolved (emptyBag, unsolved_implics) ; let final_wanted_evvars = mapBag deCanonicaliseWanted unsolved_flats ; return (final_wanted_evvars, ev_binds) } @@ -512,7 +512,7 @@ simplifyRule name tv_bndrs lhs_wanted rhs_wanted ; rhs_binds_var@(EvBindsVar evb_ref _) <- newTcEvBinds ; loc <- getCtLoc (RuleSkol name) ; rhs_binds1 <- simplifyCheck SimplCheck $ unitBag $ WcImplic $ - Implic { ic_env_tvs = emptyVarSet -- No untouchables + Implic { ic_untch = emptyVarSet -- No untouchables , ic_env = emptyNameEnv , ic_skols = mkVarSet tv_bndrs , ic_scoped = panic "emitImplication" @@ -642,12 +642,12 @@ solveImplication :: InertSet -- Given -- -- Precondition: everything is zonked by now solveImplication inert - imp@(Implic { ic_env_tvs = untch - , ic_binds = ev_binds - , ic_skols = skols - , ic_given = givens + imp@(Implic { ic_untch = untch + , ic_binds = ev_binds + , ic_skols = skols + , ic_given = givens , ic_wanted = wanteds - , ic_loc = loc }) + , ic_loc = loc }) = nestImplicTcS ev_binds untch $ do { traceTcS "solveImplication {" (ppr imp) @@ -676,7 +676,7 @@ floatEqualities :: TcTyVarSet -> [EvVar] -> CanonicalCts -> (CanonicalCts, CanonicalCts) floatEqualities skols can_given wanteds | hasEqualities can_given = (emptyBag, wanteds) - | otherwise = partitionBag is_floatable wanteds + | otherwise = partitionBag is_floatable wanteds where is_floatable :: CanonicalCt -> Bool is_floatable (CTyEqCan { cc_tyvar = tv, cc_rhs = ty })