Hello. I just found a bug in Ruby, version 1.9.1p0, Windows. In the rdoc to Object#hash we read (http://ruby-doc.org/core/classes/Object.html#M000337): "This function must have the property that a.eql?(b) implies a.hash == b.hash." Now see: irb(main):214:0> z=0.0 => 0.0 irb(main):215:0> nz=-0.0 => -0.0 irb(main):216:0> z.eql?(nz) => true irb(main):217:0> z.hash => 1041500564 irb(main):218:0> nz.hash => -434138511 So the class Float does not fully follow the #hash contract. Well, isn't that strange? TPR. -- Posted via http://www.ruby-forum.com/.