Effects cleanup - removed extra bits from predicates queries that are no longer needed in the new system - removed the need for `non_erasable_generics` to take in tcx and DefId, removed unused arguments in callers r? compiler-errors
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.