module A
def a
p 'A'
end
end

module B
def b; a; end
def a
p 'B'
end
end

class X
include B
include A
end

p X.ancestors #=> [X, A, B, Object...]
p X.new.b

"A"
"A"
なぜ、2回もAが表示されたの? Bが表示されない

モジュールB内で、aを呼んだときは、静的スコープのB.a を読んでくれないな。
常に動的に、X, A, B の順に、aを探すのか
「メタプログラミング Ruby」1.6章より