@swiftcoder we considered making the default order on floats total (by decreeing that NaNs not just equal themselves, but also are > +inf) but ultimately decided against it as probably a bridge too far.
(We already pay an extra cost on FP compares for the current semantics, because there is no way to get "were both operands NaN" out of the standard compare results, so if there was any NaN, we need to do an extra test to detect and handle NaN-vs-NaN.)
@swiftcoder Verse floats used to have a total order with NaN < -inf until last year. I argued that if we put NaNs anywhere, it's better to put them at the top, because there's an asymmetry and FP compares idiomatically use abs(x - y) < threshold (or <=) more often that > or >=. NaN < -inf means x-y=NaN => test passes.
Ultimately the NaN=NaN thing and 1/+0 = 1/-0 were necessary for Verse semantics to be consistent, total order was not.