Add new skolem tyvars to the InteractiveContext after type reconstruction
[ghc-hetmet.git] / compiler / ghci / Debugger.hs
index a56b27b..f4941d2 100644 (file)
@@ -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