+1. We give them an Internal name, not (as usual) an External one.
+ Otherwise the NameCache gets confused by a second allocation of
+ M.f. (We used to invent a fake module ThFake to avoid this, but
+ that had other problems, notably in getting the correct answer for
+ nameIsLocalOrFrom in lookupFixity. So we now leave tcg_module
+ unaffected.)
+
+2. We make them *shadow* the outer bindings. If we don't do that,
+ we'll get a complaint when extending the GlobalRdrEnv, saying that
+ there are two bindings for 'f'.
+
+ This shadowing applies even if the binding for 'f' is in a
+ where-clause, and hence is in the *local* RdrEnv not the *global*
+ RdrEnv.
+
+We find out whether we are inside a [d| ... |] by testing the TH
+stage. This is a slight hack, because the stage field was really meant for
+the type checker, and here we are not interested in the fields of Brack,
+hence the error thunks in thRnBrack.