>>>>> "C" == Christoph <chr_news / gmx.net> writes: C> c) Determine if a ``most specific '' specialization on C> argument type (+ self type) exists. In case of ambiguities C> call a method like ambiguous_method_call . C> (default action is to raise an Exception) . This is Cecil's C> and Dylan's way I believe. The ambiguity can be seen when ruby define the method, except for the example given in [ruby-talk:51426] where it can be detected only at runtime. pigeon% cat d.rb #!./ruby -w class B < Array; end module M def a(Object o) end end class A include M def a(Array a) next_method; end end module M def a(B a) end end A.new.a(B.new) pigeon% pigeon% d.rb ./d.rb:9: warning: Ignoring : method `a' more specific in M pigeon% Guy Decoux