interface ( Ordered-Comparator-Type [Meta-Type ( supertypes « (Equality-Comparator-Type), instance « ( receives « ( [less-than? (first item-type, second item-type)] ( [replies Boolean] « [¬[equal? (first « first, second « second)] ∧ ¬[greater-than? (first « first, second « second)]] ), [greater-than? (first item-type, second item-type)] ( [replies Boolean] « [¬[equal? (first « first, second « second)] ∧ ¬[less-than? (first « first, second « second)]] ) // instance types must override either equal or not-equal // and either less-than or greater-than ), operators « ( [[left item-type] < [right item-type]] « [less-than? (first « left, second « right)], [[left item-type] ≤ [right item-type]] « [[left < right] ∨ [left = right]] [[left item-type] > [right item-type]] « [greater-than? (first « left, second « right)], [[left item-type] ≥ [right item-type]] « [[left > right] ∨ [left = right]] ) ) )], Ordered-Type [Meta-Type ( supertypes (Ordered-Comparator-Type, Equality-Type) )] )