pub(in solve) fn make_canonical_state<D, T, I>(
    delegate: &D,
    var_values: &[I::GenericArg],
    max_input_universe: UniverseIndex,
    data: T,
) -> CanonicalState<I, T>
where D: SolverDelegate<Interner = I>, I: Interner, T: TypeFoldable<I>,
Expand description

Used by proof trees to be able to recompute intermediate actions while evaluating a goal. The var_values not only include the bound variables of the query input, but also contain all unconstrained inference vars created while evaluating this goal.