Yukihiro Matsumoto wrote:
>   * bar in class B will be skipped, since it's private.
>   * bar in class A is chosen.

So private and public methods *do* have different namespaces, in
a certain way. While you can't have 2 methods with the same name
in a given class, the private "chain" is pretty much independant
from the public chain. But the public chain is very much dependant
on the private chain:

  class A
    private
    def bar; "A"; end
  end
  class B < A
    def bar; super+"B"; end
  end
  class C < B
    def bar; super+"C"; end
  end
  C.new.bar #=> "AC"

Am I correct in guessing that the super in C#bar would first look
in the private method space and find A#bar, skipping B#bar? Or
would 'super' have a different mechanism, bypassing private/public
visibility?

Sorry about all the questions. I'll admit that this mixing of
private and public methods is unlikely to happen in the real world,
but I'm trying to wrap my mind around all the implications of this
dispatch model and it's not easy.

Daniel