|  | pub use rustc_next_trait_solver::solve::*; | 
|  |  | 
|  | mod delegate; | 
|  | mod fulfill; | 
|  | pub mod inspect; | 
|  | mod normalize; | 
|  | mod select; | 
|  |  | 
|  | pub(crate) use delegate::SolverDelegate; | 
|  | pub use fulfill::{FulfillmentCtxt, NextSolverError, StalledOnCoroutines}; | 
|  | pub(crate) use normalize::deeply_normalize_for_diagnostics; | 
|  | pub use normalize::{ | 
|  | deeply_normalize, deeply_normalize_with_skipped_universes, | 
|  | deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals, | 
|  | }; | 
|  | use rustc_middle::query::Providers; | 
|  | use rustc_middle::ty::TyCtxt; | 
|  | pub use select::InferCtxtSelectExt; | 
|  |  | 
|  | fn evaluate_root_goal_for_proof_tree_raw<'tcx>( | 
|  | tcx: TyCtxt<'tcx>, | 
|  | canonical_input: CanonicalInput<TyCtxt<'tcx>>, | 
|  | ) -> (QueryResult<TyCtxt<'tcx>>, &'tcx inspect::Probe<TyCtxt<'tcx>>) { | 
|  | evaluate_root_goal_for_proof_tree_raw_provider::<SolverDelegate<'tcx>, TyCtxt<'tcx>>( | 
|  | tcx, | 
|  | canonical_input, | 
|  | ) | 
|  | } | 
|  |  | 
|  | pub fn provide(providers: &mut Providers) { | 
|  | *providers = Providers { evaluate_root_goal_for_proof_tree_raw, ..*providers }; | 
|  | } |