pub fn structurally_relate_consts<I, R>(
relation: &mut R,
a: <I as Interner>::Const,
b: <I as Interner>::Const,
) -> Result<<I as Interner>::Const, TypeError<I>>where
I: Interner,
R: TypeRelation<I>,
Expand description
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.
FIXME: This is not totally structural, which probably should be fixed. See the HACKs below.