When evaluating a goal we also store the original values
for the CanonicalVarValues of the canonicalized goal.
We use this to map any CanonicalState from the local InferCtxt
of the solver query to the InferCtxt of the caller.
What kind of probe we’re in. In case the probe represents a candidate, or
the final result of the current goal - via ProbeKind::Root - we also
store the QueryResult.