On Tue, 28 Mar 2006, Evan Phoenix wrote: > The reciever class is the potentially the one thats been subclassed, > so all it's methods should attempt to convert return values into > instances of itself. Is there any case where you wouldn't want the return-type to be covariant with the receiver? Something like a #to_ordinary_pathname() would be obvious ;-) but there could be some subtler cases. E.g. when I reimplemented Array#[] and such, I argued with myself quite a long time about whether it should return ordinary Arrays or MyArrays, and then, MyArray is not even a subclass of Array. In that case I decided that #[] should always return Array. I think it depends on what kind of enhancements it has over the regular PathName. Does it need be a subclass? Can you modify Pathname instead? > I could extend Pathname and add my methods to it, but I've actually got > 2 such classes and I don't particularly want them to share these > methods. Why? Cause I really don't see why. _ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tñÍ:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, MontrñÂl QC Canada