module K end class O include K end class C < O end class D < O end module M def m end end module K include M end C.new.m # => undefined method D.new.m # => undefined method class D include K end D.new.m # => nil C.new.m # => nil in Rubinius # undefined method in MRI 1.8/1.9 and JRuby