From: Sylvain Joyeux Date: 2005-07-28T03:02:48+09:00 Subject: Re: What's so special about operators, built-in classes and modules? > (I actually consider Ruby's mixins to *be* a kind of > multiple inheritance, but I'll play along for a while.) Theoretically, you can't have a base class use derived class methods because a) the base class should be instantiable b) in OO you can't force the derived class to define a method. Dynamic language allow (b) but it would feel strange anyway About (a), one assumption you have is that modules should be instantiable. Enumerable, for instance, is not even using the trick you sent earlier because no method in the resulting object would be usable. In the C++ world (if you know it), modules are a form of CRTP. Regards, -- Sylvain Joyeux