Geoff Youngs wrote: .. > So, for the above example, using Interface::Enumerable could > allow an array class to use the brute force Enumerable#max, > but wouldn't prevent the Range class from implementing a much > simpler and faster Range#max. Whats the improvement here. We can already fine tune included method for each ``includy'' class Range def max unless exclude_end? self.end if self.begin <= self.end else # the super refers to Enumerable#max super if self.begin <= self.end end end end but maybe I missunderstood something(s)? /Christoph