SASADA Koichi wrote:
> (3) method dispatch as function like "foo()", introduce new method
> search ordering.
> 
>     1. search *only private methods* in inheritance tree.
>     2. search public methods in inheritance tree from CLASS_OF(self).

Do I understand correctly that:
  class A
    def foo; "priv"; end
    private :foo
    def foo; "pub"; end
    def bar; foo+self.foo; end
  end
  A.new.bar #=> "privpub"

I'm not sure what is the use case for this (apart from "let's break backwards
compatibility since we are allowed to").

> (4) (unconfirmed) private method dispatch searches from caller method class.

Do I understand correctly that:
  class A
    def foo; bar; end
    private
    def bar; "A"; end
  end
  class B < A
    private
    def bar; "B"; end
  end
  B.new.foo #=> "A"

So the only way to do polymorphism would be through public methods?

> (5) remove send!, __send! methods.  private method funcall is added.

Allow me to indulge in a little bit of semantic pedantic-ish fun: if we
wanted to be perfectly OO, we would have to say subject.receive(obj), as
subject.send(obj) implies (at least according to english grammar) that
the subject takes the obj and sends it somewhere. ;-)

Daniel