From 7ac266d097639620e4fea22c40450c8d7822f5fb Mon Sep 17 00:00:00 2001 From: Pepe Iborra Date: Tue, 1 May 2007 10:11:05 +0000 Subject: [PATCH] Add new skolem tyvars to the InteractiveContext after type reconstruction This was being done already for each binding added by :print, but :sprint does not add any new binding, so we take care of it separately --- compiler/ghci/Debugger.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/ghci/Debugger.hs b/compiler/ghci/Debugger.hs index 4e61068..f4941d2 100644 --- a/compiler/ghci/Debugger.hs +++ b/compiler/ghci/Debugger.hs @@ -100,12 +100,17 @@ pprintClosureCommand session bindThings force str = do ids' = map (\id -> id `setIdType` substTy subst (idType id)) ids type_env'= extendTypeEnvWithIds type_env ids' 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 = foldl' delVarSetByKey - (ic_tyvars ictxt) - subst_dom } + , 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 -- 1.7.10.4