diff options
Diffstat (limited to 'compiler/GHC/Iface/UpdateIdInfos.hs')
-rw-r--r-- | compiler/GHC/Iface/UpdateIdInfos.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/GHC/Iface/UpdateIdInfos.hs b/compiler/GHC/Iface/UpdateIdInfos.hs index 9b8b058745..e37964c51d 100644 --- a/compiler/GHC/Iface/UpdateIdInfos.hs +++ b/compiler/GHC/Iface/UpdateIdInfos.hs @@ -45,8 +45,10 @@ updateModDetailsIdInfos cg_infos mod_details = } = mod_details -- type TypeEnv = NameEnv TyThing - ~type_env' = mapNameEnv (updateTyThingIdInfos type_env' cg_infos) type_env - -- Not strict! + type_env' = mapNameEnv (updateTyThingIdInfos type_env' cg_infos) type_env + -- NB: Knot-tied! The result, type_env', is passed right back into into + -- updateTyThingIdInfos, so that that occurrences of any Ids (e.g. in + -- IdInfos, etc) can be looked up in the tidied env !insts' = strictMap (updateInstIdInfos type_env' cg_infos) insts !rules' = strictMap (updateRuleIdInfos type_env') rules |