module って super できたんだ

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 かなとも思ったけど違った。これって多重継承と何か違うんかな。そもそも菱形継承問題の何が問題なのかわかってない。