To expand the knowledge on this weirdness: irb(main):001:0> module A irb(main):002:1> module H irb(main):003:2> end irb(main):004:1> end => nil irb(main):005:0> module B irb(main):006:1> include A irb(main):007:1> end => B irb(main):008:0> module B irb(main):009:1> module H irb(main):010:2> end irb(main):011:1> end => nil irb(main):012:0> A::H.object_id == B::H.object_id => false irb(main):014:0> B::H => B::H # it exists