- all_avails = foldr plusAvailEnv emptyAvailEnv avails
- rdr_env = foldr plusGlobalRdrEnv emptyGlobalRdrEnv gres
+ avails = concat avails_s
+ rdr_env | not want_hiding
+ = foldr plusGlobalRdrEnv emptyGlobalRdrEnv gres
+ | otherwise -- Hiding; qualified-only import of hidden things
+ = mkGlobalRdrEnv [ GRE { gre_name = name,
+ gre_prov = Imported [mk_imp_spec name] False }
+ | avail <- total_avails, name <- availNames avail ]
+ hidden = availsToNameSet avails
+ mk_imp_spec n
+ | n `elemNameSet` hidden = imp_spec { is_qual = True }
+ | otherwise = imp_spec