In message "Re: [ruby-core:50357] [ruby-trunk - Feature #4085] Refinements and nested methods"
    on Fri, 30 Nov 2012 11:02:10 +0900, "trans (Thomas Sawyer)" <transfire / gmail.com> writes:

|> I was thinking of M2->M1->C, but M2->C is simpler and acceptable.
|
|This can't be b/c then you can't refine a previous refinement. Thus it breaks modularity (black box) principle. E.g. if I `require 'x.rb'` and apply `using B`, it should not matter if x.rb is `using A` or not. (I can explain that with a detail example if it is not clear enough).

You are right, by this spec you can refine a method only once in a
file.  But I don't understand how it breaks black box principle.
it does not change the behavior if required x.rb is 'using A' or not,
under the current spec.

							matz.