Just wanted to add a few things. 1) If we get local instance methods, it might lessen the necessity, since they are not visible to the hierarchy chain, and thus can't be overridden. Granted it's not the same but it should alleviate some use cases. 2) Kernel methods are also module_function. So they can be called that way even if the instance version is overridden. Again, this may help alleviate some use cases. 3) In general, it makes sense for __xxx__ methods to not be redefinable / overridable. In common practice that's the very thing intended. (Along with hope and prayer that we manage to avoid name clash.) 4) I haven't thought this last idea through, but perhaps private methods of the form __xxx__ can be local instance methods? T.