State-Changed-From-To: open-open State-Changed-By: Manu State-Changed-When: Sun Sep 16 15:17:16 PDT 2001 State-Changed-Why: Dear Randy, I've been reading a few things about NaN and I'm not sure we should fix the post-condition violation. I've learned that because NaN values are unordered, they are not comparable. And thus if you really want to keep those values it does not make much sense, but since I don't know the background of your application I don't know how you are using them It makes sense to store infinity values since they compare. Also you solution to change INDEXABLE is not complete. They are so many post-condition of the style: v = new_value where new_value can be a NAN that we should do it everywhere and it does not become nice. Another solution is to let the compiler treat `v = new_value' for doubles in the way you described, but I would say it will translate it into: v = new_value <=> (is_nan (v) and is_nan (new_value)) || (v = new_value) That way every where we compare 2 doubles we get the semantic where 2 NaN numbers compare to True. Cons: 1 - most C, .NET implementation always raise False when comparing 2 NaN numbers 2 - it slows down the execution of system that makes use of double/floats Pros: it works the way you want. We will need to do more research on this topic, to make sure we offer the correct/best behavior for Eiffel users.