module D def foo p :D end end module C def foo p :C super end include D end module B def foo p :B super end include D end class A def foo p :A super end include C include B end A.new.foo #=> :A, :B, :C, :D
:A, :B, :D, :C, :D かなとも思ったけど違った。これって多重継承と何か違うんかな。そもそも菱形継承問題の何が問題なのかわかってない。