Motivation: in upcoming commits, we are going to create a graph of the coercion relationships between variables. We want to distinguish *coercion* specifically from other sorts of subtyping, as it indicates values flowing from one place to another via assignment.
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.