title: eql? behavior after redefining Object#hash
body: <p><a href="http://ruby-doc.org/core-2.1.2/Object.html#method-i-eql-3F" rel="nofollow">Ruby API</a> says:</p>
  
  <blockquote>
    <p>The eql? method returns true if obj and other refer to the same hash key. </p>
  </blockquote>
  
  <p>I changed the hash method for <code>Object</code>:</p>
  
  <pre><code>class Object
   def hash
     1
   end
  end
  
  Object.new.hash == Object.new.hash
  # =&gt; true
  
  Object.new.eql? Object.new
  # =&gt; false
  </code></pre>
  
  <p>I don't understand why the second statement returns <code>false</code>; according to Ruby Object API above, it should return <code>true</code>.</p>