pub fn solve_canonical_goal(&mut self,
                                canonical_goal: &Canonical<InEnvironment<Goal>>)
                                -> Result<Solution> {
        let mut fulfill = Fulfill::new(self);
        let subst = fulfill.instantiate_and_push(canonical_goal);
        fulfill.solve(subst)
    }
/// Solves a canonical goal. The substitution returned in the
/// solution will be for the fully decomposed goal. For example, given the
/// program
///
/// ```ignore
/// struct u8 { }
/// struct SomeType<T> { }
/// trait Foo<T> { }
/// impl<U> Foo<u8> for SomeType<U> { }
/// ```
///
/// and the goal `exists<V> { forall<U> { SomeType<U>: Foo<V> }
/// }`, `into_peeled_goal` can be used to create a canonical goal
/// `SomeType<!1>: Foo<?0>`. This function will then return a
/// solution with the substitution `?0 := u8`.
Solves a canonical goal. The substitution returned in the
solution will be for the fully decomposed goal. For example, given the
program




Solves a canonical goal . The substitution returned in the solution will be for the fully decomposed goal . For example given the program
pub fn solve_canonical_goal(&mut self,
                                canonical_goal: &Canonical<InEnvironment<Goal>>)
                                -> Result<Solution> {
        let mut fulfill = Fulfill::new(self);
        let subst = fulfill.instantiate_and_push(canonical_goal);
        fulfill.solve(subst)
    }
pub fn solve_canonical_goal ( & mut self , canonical_goal : & Canonical < InEnvironment < Goal > > ) -> Result < Solution > { let mut fulfill = Fulfill :: new ( self ) ; let subst = fulfill . instantiate_and_push ( canonical_goal ) ; fulfill . solve ( subst ) }
Solves a canonical goal.
Solves a canonical goal .
&mut self
canonical_goal
&Canonical<InEnvironment<Goal>>