- ; let pcs_middle = pcs_tc
-
-{- Again, omit this because it loses the usage info
- which is needed in mkIface. Maybe we should compute
- usage info earlier.
-
- ; pcs_middle
- <- _scc_ "pcs_middle"
- if one_shot then
- do init_pcs <- initPersistentCompilerState
- init_prs <- initPersistentRenamerState
- let
- rules = pcs_rules pcs_tc
- orig_tc = prsOrig (pcs_PRS pcs_tc)
- new_prs = init_prs{ prsOrig=orig_tc }
-
- orig_tc `seq` rules `seq` new_prs `seq`
- return init_pcs{ pcs_PRS = new_prs,
- pcs_rules = rules }
- else return pcs_tc
--}
-
--- Should we remove bits of flat_result at this point?
--- ; flat_result <- case flat_result of
--- ModResult { md_binds = binds } ->
--- return ModDetails { md_binds = binds,
--- md_rules = [],
--- md_types = emptyTypeEnv,
--- md_insts = [] }
+
+ ; let -- Rule-base accumulated from imported packages
+ pkg_rule_base = eps_rule_base (pcs_EPS pcs_tc)
+
+ -- In one-shot mode, ZAP the external package state at
+ -- this point, because we aren't going to need it from
+ -- now on. We keep the name cache, however, because
+ -- tidyCore needs it.
+ pcs_middle
+ | one_shot = pcs_tc{ pcs_EPS = error "pcs_EPS missing" }
+ | otherwise = pcs_tc
+
+ ; pkg_rule_base `seq` pcs_middle `seq` return ()