2011/1/11 Yukihiro Matsumoto <matz / ruby-lang.org>:
> See [ruby-core:34319]. From above rule we cannot allow all method
> transplanting from classes. Since we don't want program fragility
> between versions, I don't want to allow method transplanting from
> classes at all.
>
> Remember the beginning of 1.8.7; rather small incompatibility hindered
> the reputation of the release so bad. I don't want to see the
> situation like that again.

I agree with matz. If it's something we want for the next releases,
then it should not break anything. Having transplantable Module
methods already unlocks lots of scenarios, where a module can act as a
bag of methods. For example it allows using methods with
define_method, which allows having regular argument-passing, in
contract with blocks, which capture the current context and don't
allow a block as argument. This in turn allows
to find new patterns that can replace alias_method_chain. If we have that,
then it's already wonderful.

For the ones who are not satisfied with the current scope of the
ticket, I propose to open a new 2.0+ issue for the research that is
needed to come up for a universal solution.