I've read ri Object#== and seen how .eql? is usually the same as ==
except for numbers where type conversion takes place, and that for
Object they must be distinct.

Are there any rules, conventions, heuristics to aid in class design
so that one may know when, and when not to 

   def ==(x)
     eql?(x)
   end

please?  The objective is to make methods do what is expected given
the rest of Ruby, so are the expectations one should have spelt out
elsewhere?

        Thank you
        Hugh