Contains the definition for the "Rust IR" -- this is basically a "lowered" version of the AST, roughly corresponding to [the HIR] in the Rust compiler.
Finds the solution to "goals", or trait queries -- i.e., figures out what sets of types implement which traits. Also, between queries, this struct stores the cached state from previous solver attempts, which can then be re-used later.
When a goal holds ambiguously (e.g., because there are multiple possible solutions), we issue a set of guidance back to type inference.
A (possible) solution for a proposed goal.