# What is the best way to get it to put out a, b, c # without erroring about the superclass. The module # inclusion order should not matter. In other words, # I should be able to include A then B or B then A # and either way all the letters a, b, and c are # printed out (though not necessarily in that exact order) module TopLevel def foo(*args) # do nothing end end module A def foo super puts 'a' end end module B def foo super puts 'b' end end class C include TopLevel include A include B def foo super puts 'c' end end C.new.foo