fn merge_into_guidance<I: Interner>(
    interner: I,
    root_goal: &Canonical<InEnvironment<Goal<I>>>,
    guidance: Canonical<Substitution<I>>,
    answer: &Canonical<ConstrainedSubst<I>>
) -> Canonical<Substitution<I>>
Expand description

Given a current substitution used as guidance for root_goal, and a new possible answer to root_goal, returns a new set of guidance that encompasses both of them. This is often more general than the old guidance. For example, if we had a guidance of ?0 = u32 and the new answer is ?0 = i32, then the guidance would become ?0 = ?X (where ?X is some fresh variable).