Extra information about why we ended up with a particular variance.
This is only used to add more information to error messages, and
has no effect on soundness. While choosing the ‘wrong’ VarianceDiagInfo
may lead to confusing notes in error messages, it will never cause
a miscompilation or unsoundness.
Relates a and b structurally, calling the relation for all nested values.
Any semantic equality, e.g. of unevaluated consts, and inference variables have
to be handled by the caller.
Relates a and b structurally, calling the relation for all nested values.
Any semantic equality, e.g. of projections, and inference variables have to be
handled by the caller.