deftrait Ordering as: -> # This trait defines ordering comparisons for types. def compare_with other: Any def equals? other: Any, as: -> Huia::Primitive.match(self.compare_with(other), { Ordering::Equal: true, Any: false }) end def greater_than? other: Any, as: -> Huia::Primitive.match(self.compare_with(other), { Ordering::Greater: true, Any: false }) end def greater_than_or_equal_to? other: Any, as: -> Huia::Primitive.match(self.compare_with(other), { Ordering::Greater: true, Ordering::Equal: true, Any: false }) end def less_than? other: Any, as: -> Huia::Primitive.match(self.compare_with(other), { Ordering::Less: true, Any: false }) end def less_than_or_equal_to? other: Any, as: -> Huia::Primitive.match(self.compare_with(other), { Ordering::Less: true, Ordering::Equal: true, Any: false }) end end