From: Joel VanderWerf Date: 2004-12-04T16:39:30+09:00 Subject: Hash#eql? and Hash key testing The ri docs for Object#eql? say: The +eql?+ method returns +true+ if _obj_ and _anObject_ have the same value. Used by +Hash+ to test members for equality. However, the second sentence doesn't seem to be consistent with the behavior of Hash (and Set): h1 = {1=>2, 3=>4} h2 = {1=>2, 3=>4} p h1.eql?(h2) # ==> true h={h1=>true} p h[h1] # ==> true p h[h2] # ==> nil Based on the docs, I would have expected p h[h2] # ==> true Have I misunderstood?