this provide method re-use at both the class and module level.  it can be used
for a kind of multiple inheritence organizational style.

     harp:~ > cat a.rb
     class Module
       def inherit other
         extend other::ClassMethods if defined? other::ClassMethods
         extend other::ModuleMethods if defined? other::ModuleMethods
         include other::ModuleMethods if defined? other::ModuleMethods
         include other::InstanceMethods if defined? other::InstanceMethods
         include other
       end
     end

     class A
       module Methods
         module ClassMethods
           def foo; 42; end
         end
         module ModuleMethods
           def bar; "forty-two"; end
         end
         module InstanceMethods
           def foobar; 42.0; end
         end
         def barfoo; "FORTY-TWO"; end
       end
       inherit Methods
     end

     class B
       inherit A::Methods
     end

     module M
       inherit A::Methods
     end

     class C
       inherit M
     end

     b = B::new
     p B::foo
     p B::bar
     p b::bar
     p b::foobar
     p b::barfoo

     c = C::new
     p C::foo
     p C::bar
     p c::bar
     p c::foobar
     p c::barfoo



     harp:~ > ruby a.rb
     42
     "forty-two"
     "forty-two"
     42.0
     "FORTY-TWO"
     42
     "forty-two"
     "forty-two"
     42.0
     "FORTY-TWO"


thoughts?

-a
-- 
===============================================================================
| ara [dot] t [dot] howard [at] noaa [dot] gov
| all happiness comes from the desire for others to be happy.  all misery
| comes from the desire for oneself to be happy.
| -- bodhicaryavatara
===============================================================================