From 7849d4a5be50796cda506c5d92ca2ccb0d15dd90 Mon Sep 17 00:00:00 2001 From: simonpj Date: Mon, 2 Jun 2003 13:27:53 +0000 Subject: [PATCH] [project @ 2003-06-02 13:27:53 by simonpj] Add comments --- ghc/compiler/typecheck/TcIfaceSig.lhs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ghc/compiler/typecheck/TcIfaceSig.lhs b/ghc/compiler/typecheck/TcIfaceSig.lhs index e1d3230..5295fec 100644 --- a/ghc/compiler/typecheck/TcIfaceSig.lhs +++ b/ghc/compiler/typecheck/TcIfaceSig.lhs @@ -55,8 +55,20 @@ signatures. tcInterfaceSigs :: [RenamedTyClDecl] -- Ignore non-sig-decls in these decls -> TcM TcGblEnv +-- May 2003: +-- NOTE 1: careful about the side-effected EPS +-- in the two tcExtendGlobalValueEnv calls +-- NOTE 2: no point in tying the knot with fixM; all +-- the important knot-tying comes via the PCS global variable + tcInterfaceSigs decls = zapEnv (fixM (tc_interface_sigs decls)) `thenM` \ (_,sig_ids) -> + -- The zapEnv dramatically trims the environment, solely + -- to plug the space leak that would otherwise be caused + -- by a rich environment bound into lots of lazy thunks + -- The thunks are the lazily-typechecked IdInfo of the + -- imported things. + tcExtendGlobalValEnv sig_ids getGblEnv `thenM` \ gbl_env -> returnM gbl_env -- We tie a knot so that the Ids read out of interfaces are in scope -- 1.7.10.4