Yukihiro Matsumoto wrote:
> No.  Private methods do not have separate namespace, so the second foo
> overwrites the first.

Ok, if private methods are not in a separate namespace, what happens here?
  class A
    def foo; bar; end
    def bar; "A"; end
  end
  class B
    private :bar
  end
  B.new.foo #=> ?

1. lookup in private methods starting at A => not found (in A, bar is public)
2. lookup in public methods starting at B => not found (in B, public bar has 
been overwritten by private bar)
3. NoMethodError?

Daniel