pub fn instantiate_canonical_state<Infcx, I, T: TypeFoldable<I>>(
    infcx: &Infcx,
    span: Infcx::Span,
    param_env: I::ParamEnv,
    orig_values: &mut Vec<I::GenericArg>,
    state: CanonicalState<I, T>,
) -> T
where Infcx: SolverDelegate<Interner = I>, I: Interner,