The new ADT interface and the new multisets use a function that works like `< to define order while Array.sort_array uses `>. This inconsistency is silly and should be resolved one way or the other.
So I ask for opinions which operator you'd like to see as the canonical ordering function in Pike.
Reasons to choose `>:
o No compatibility issue with Array.sort_array (it's not a compatibility problem to change it for multisets and in Petas ADT interface since those haven't been released).
o It maps somewhat better to a three-way compare: If a < b: cmp(a, b) == -1 (a > b) == 0 If a == b: cmp(a, b) == 0 (a > b) == 0 If a > b: cmp(a, b) == 1 (a > b) == 1 <= Same sign. C.f: If a < b: cmp(a, b) == -1 (a < b) == 1 <= Opposite sign. If a == b: cmp(a, b) == 0 (a < b) == 0 If a > b: cmp(a, b) == 1 (a < b) == 0
Reasons to choose `<:
o The operator < is almost always used in mathematics to describe order relations, not >. Thus it feels more natural, at least for me.