Picks the single variant compatible with a relational bound.
Routes a comparison bound (a <, >, <=, >= selection operand) to the one variant it filters against, so a
caller can type the bound by the resolved branch. Unlike a state value, a bound need not be a legal element value: a
comparison filters by order, so a >= 8 bound over a [1, 5] domain is a legal query returning nothing, not an
error. Matching therefore relaxes the value-domain magnitude facets (min*/max*, integral, string length,
languageIn, in, hasValue) and keys only on the syntactic traits that pin a branch: the value's kind and,
where literal branches share a kind, their lexical pattern.
The match stays exactly one: a processor needs a single branch to convert the bound against, so a bound admitted
by several variants is ambiguous and one admitted by none unsatisfiable, both reported as no match. This relies on
the union being literally disjoint (kind and pattern separate the literal branches with no value-domain
facet); a union that is not is rejected at runtime by the ambiguous-match rule rather than at construction.
Picks the single variant compatible with a relational bound.
Routes a comparison bound (a
<,>,<=,>=selection operand) to the one variant it filters against, so a caller can type the bound by the resolved branch. Unlike a state value, a bound need not be a legal element value: a comparison filters by order, so a>= 8bound over a[1, 5]domain is a legal query returning nothing, not an error. Matching therefore relaxes the value-domain magnitude facets (min*/max*,integral, string length,languageIn,in,hasValue) and keys only on the syntactic traits that pin a branch: the value'skindand, where literal branches share a kind, their lexicalpattern.The match stays exactly one: a processor needs a single branch to convert the bound against, so a bound admitted by several variants is ambiguous and one admitted by none unsatisfiable, both reported as no match. This relies on the union being literally disjoint (
kindandpatternseparate the literal branches with no value-domain facet); a union that is not is rejected at runtime by the ambiguous-match rule rather than at construction.