On 6/27/06, Jacob Fugal <lukfugl / gmail.com> wrote: > #eql? is used in hash key collision resolution. Under nearly all > circumstances, #eql? will be synonymous with #==, and if your class > needs to override #== it will be sufficient to alias #eql? to #==. > Just note there are rare exceptions. The one question I do have regarding this is why isn't the default implementation of Object#eql? as an alias to Object#==? The documentation makes it clear that that's the intended behavior, and the common behavior for descendants of Object as well. It seems odd that it's not then codified as an alias. It seems redundant that we have to always remember to alias #eql? if we override #==; why can't it be the default to already be an alias? Jacob Fugal