X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2Fmain%2FHscTypes.lhs;h=04f2b7c0e2fcae67f5b134096b279976e08ad3ea;hb=671b39c5b40e5a3105e4ffb49b673b20ce96ba15;hp=99495fe4d6d75e3a61b39f3b84ec23b77a0bda57;hpb=808e6d4e915b12c29eaeada7b70318b829eafe82;p=ghc-hetmet.git diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs index 99495fe..04f2b7c 100644 --- a/compiler/main/HscTypes.lhs +++ b/compiler/main/HscTypes.lhs @@ -85,6 +85,7 @@ import InstEnv ( InstEnv, Instance ) import FamInstEnv ( FamInstEnv, FamInst ) import Rules ( RuleBase ) import CoreSyn ( CoreBind ) +import VarSet import Id ( Id, isImplicitId ) import Type ( TyThing(..) ) @@ -614,18 +615,27 @@ data InteractiveContext ic_rn_gbl_env :: GlobalRdrEnv, -- The cached GlobalRdrEnv, built from -- ic_toplev_scope and ic_exports - ic_rn_local_env :: LocalRdrEnv, -- Lexical context for variables bound - -- during interaction - - ic_type_env :: TypeEnv -- Ditto for types + ic_type_env :: TypeEnv, -- Type env for names bound during + -- interaction. NB. the names from + -- these Ids are used to populate + -- the LocalRdrEnv used during + -- typechecking of a statement, so + -- there should be no duplicate + -- names in here. + + ic_tyvars :: TyVarSet -- skolem type variables free in + -- ic_type_env. These arise at + -- breakpoints in a polymorphic + -- context, where we have only partial + -- type information. } emptyInteractiveContext = InteractiveContext { ic_toplev_scope = [], ic_exports = [], ic_rn_gbl_env = emptyGlobalRdrEnv, - ic_rn_local_env = emptyLocalRdrEnv, - ic_type_env = emptyTypeEnv } + ic_type_env = emptyTypeEnv, + ic_tyvars = emptyVarSet } icPrintUnqual :: InteractiveContext -> PrintUnqualified icPrintUnqual ictxt = mkPrintUnqualified (ic_rn_gbl_env ictxt)