https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118698
--- Comment #18 from Patrick Palka <ppalka at gcc dot gnu.org> --- I think I see what you mean -- for the instantiate_template (and possibly even coerce_template_parms) call site, we could define and pass a new flag tf_no_level_lowering instead of tf_partial to tell tsubst_lambda_expr to eagerly substitute, without any level lowering, instead of deferring the substitution using the EXTRA_ARGS mechanism, so that we don't unnecessarily defer in more cases. We'd still need to use tf_partial and defer from e.g. fn_type_unification though.