A “canonicalized” type V is one where all free inference
variables have been rewritten to “canonical vars”. These are
numbered starting from 0 in order of first appearance.
A set of values corresponding to the canonical variables from some
Canonical. You can give these values to
canonical_value.instantiate to instantiate them into the canonical
value at the right places.
Information about a canonical variable that is included with the
canonical value. This is sufficient information for code to create
a copy of the canonical value in some other inference context,
with fresh inference variables replacing the canonical values.