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