I'm looking forward to consistent module inclusion :-)

I should have talked about Marc-andre's example with multiple inclusion at
the same level (same class/module/object), coz I don't think it should be
done this way. The example was:

    module M
      def to_s
        "*" + super + "*"
      end
    end

    3.times{ Fixnum.prepend(M) }
    42.to_s # => "*42*" would be best, not "***42***"

My reasoning is that otehrwise it makes it hard to reload a Ruby class
definition. When debugging, it is frequent that one modifies a method
definition, reloads the whole file and tests away. It would not be
practical if any +include+ or +prepend+ in the class definition induced a
change in the ancestry.

If someone really wants multiple inclusion *at the same level*, it can be
achieved by dupping the module.

So I believe that a module should only be included once per
class/module/object. Same thing for prepending. Prepending and including
should be independent though.

    3.times{ Fixnum.prepend(M) }
    2.times{ Fixnum.include(M) }
    Numeric.prepend(M)
    Fixnum.ancestors # => [M, Fixnum, M, M, Numeric, ...], not [M, M, M,
Fixnum, M, M, M, Numeric, ...]

Is that the plan? Was this brought up when discussing with Matz about this?