pub fn canonicalize(input: &RetriInput, interner: &mut Interner) -> CanonicalExpand description
PHASE B — intern T’s corners + every constraint endpoint into the shared
interner, order each segment’s endpoints by lex-rank, and sort the segment
list canonically (deduplicating). The output is a pure function of the input
geometry, independent of the order constraints arrive in.