pub fn program_clauses_for_goal<'db, I: Interner>(
    db: &'db dyn RustIrDatabase<I>,
    goal: &UCanonical<InEnvironment<DomainGoal<I>>>
) -> Result<Vec<ProgramClause<I>>, Floundered>
Expand description

Given some goal goal that must be proven, along with its environment, figures out the program clauses that apply to this goal from the Rust program. So for example if the goal is Implemented(T: Clone), then this function might return clauses derived from the trait Clone and its impls.