X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FDebugger.hs;h=f4941d24478e9fa43aa8a3db298e7f8257439760;hb=7ac266d097639620e4fea22c40450c8d7822f5fb;hp=a56b27b876a17c96ed5c9f085cbdd3a5ddc61dab;hpb=ee03fe2fd35cdb33cf8b586691ab0da6d1b92153;p=ghc-hetmet.git diff --git a/compiler/ghci/Debugger.hs b/compiler/ghci/Debugger.hs index a56b27b..f4941d2 100644 --- a/compiler/ghci/Debugger.hs +++ b/compiler/ghci/Debugger.hs @@ -99,9 +99,18 @@ pprintClosureCommand session bindThings force str = do ids = typeEnvIds type_env ids' = map (\id -> id `setIdType` substTy subst (idType id)) ids type_env'= extendTypeEnvWithIds type_env ids' - ictxt' = ictxt { ic_type_env = type_env' } + subst_dom= varEnvKeys$ getTvSubstEnv subst + subst_ran= varEnvElts$ getTvSubstEnv subst + new_tvs = [ tv | t <- subst_ran, let Just tv = getTyVar_maybe t] + ic_tyvars'= (`delVarSetListByKey` subst_dom) + . (`extendVarSetList` new_tvs) + $ ic_tyvars ictxt + ictxt' = ictxt { ic_type_env = type_env' + , ic_tyvars = ic_tyvars' } writeIORef ref (hsc_env {hsc_IC = ictxt'}) + where delVarSetListByKey = foldl' delVarSetByKey + tidyTermTyVars :: Session -> Term -> IO Term tidyTermTyVars (Session ref) t = do hsc_env <- readIORef ref