In [ruby-talk:12908], "Christoph Rippel" <crippel / primenet.com> writes:

<snip>
> It violates the rules because of
> 
> a = {}; b = {};
> p a.eql? b          # => true , but
> p a.hash == b.hash  # => false
> 
> Pointing out that the Hash Class itself is a notable exception from
> this rule is probably enough - my guess is that Matz did not want to  
> bother implementing a ``correct'' hashing scheme because of 
> efficiency reasons.
<snip>

On my system, a.eql? b is false so I don't see how that breaks the rule.
FYI, my architecture is i386-linux and I'm running Ruby 1.6.3.

Henry.