On 07/18/2018 12:25 PM, Achim Gratz wrote: > the established FP math says these > two values should not compare equal anyway. Sure, and = still does that. = is about numeric comparison; eql is about value comparison. Neither dominates the other: for example, they disagree about 0.0 vs -0.0 (= says they're equal, but eql says they're distinguishable values and so are not equal), and conversely they disagree about 0.0e+NaN versus 0.0e+NaN (= says they're not equal, whereas eql says they're indistinguishable values are so are equal). > If you stray from that > convention there should be a really good reason for that and it needs to > be prominently documented. There is good reason: eq, eql, and equal are about distinguishing objects (vital for hash tables, e.g.) whereas = is about numeric comparison. These are different things, and the numeric-comparison rule for NaNs is inconsistent with how hash tables should work. I gave a shot at documenting this by installing the attached patch.