Baz#boo and Baz.new.method(:boo).call dosn't produce the same result. Does this surprise anyone? irb(main):001:0> class Foo irb(main):002:1> def boo irb(main):003:2> puts "Foo#boo" irb(main):004:2> end irb(main):005:1> end => nil irb(main):006:0> irb(main):007:0* module Bar irb(main):008:1> def boo irb(main):009:2> puts "Bar#boo" irb(main):010:2> super irb(main):011:2> end irb(main):012:1> end => nil irb(main):013:0> irb(main):014:0* class Baz < Foo irb(main):015:1> include Bar irb(main):016:1> end => Baz irb(main):017:0> irb(main):018:0* Baz.new.boo Bar#boo Foo#boo => nil irb(main):019:0> Baz.new.method(:boo).call Bar#boo NoMethodError: super: no superclass method `boo' from (irb):10:in `boo' from (irb):19:in `call' from (irb):19 from :0 irb(main):020:0>