+
+ tcExtendIdEnv (typeEnvIds (ic_type_env icxt)) $
+ -- tcExtendIdEnv does lots:
+ -- - it extends the local type env (tcl_env) with the given Ids,
+ -- - it extends the local rdr env (tcl_rdr) with the Names from
+ -- the given Ids
+ -- - it adds the free tyvars of the Ids to the tcl_tyvars
+ -- set.
+ --
+ -- We should have no Ids with the same name in the
+ -- ic_type_env, otherwise we'll end up with shadowing in the
+ -- tcl_rdr, and it's random which one will be in scope.