x ? y -- compares x and y, returning quote <, quote >, quote ==, or incomparable.
The user may install binary methods for this operator with code
such as
X ? Y := (x,y) -> ...
where X is the class of x and Y is the
class of y.
i1 : 3 ? 4
o1 = quote <
o1 : Symbol
i2 : "book" ? "boolean"
o2 = quote <
o2 : Symbol
i3 : 3 ? 3.
o3 = quote ==
o3 : Symbol
i4 : 3 ? "a"
o4 = quote >
o4 : Symbol
It would be nice to implement an operator like this one for everything
in such a way that the set of all things in the language would be
totally ordered, so that it could be used in the implementation of
efficient hash tables, but we haven't done this. The methods which have
been installed for this operator are fairly primitive, and in the end
often amount to simply comparing hash codes.