+ ; let gbl_env1 = gbl_env { tcg_mod = thFAKE }
+ -- Note the thFAKE. The top-level names from the bracketed
+ -- declarations will go into the name cache, and we don't want them to
+ -- confuse the Names for the current module.
+ -- By using a pretend module, thFAKE, we keep them safely out of the way.
+
+ ; names <- getLocalDeclBinders gbl_env1 group
+ ; rdr_env' <- extendRdrEnvRn emptyGlobalRdrEnv names
+ -- Furthermore, the names in the bracket shouldn't conflict with
+ -- existing top-level names E.g.
+ -- foo = 1
+ -- bar = [d| foo = 1|]
+ -- But both 'foo's get a LocalDef provenance, so we'd get a complaint unless
+ -- we start with an emptyGlobalRdrEnv
+
+ ; setGblEnv (gbl_env { tcg_rdr_env = tcg_rdr_env gbl_env1 `plusOccEnv` rdr_env',