Why does `respond_to?(:foo)` return `false` and `method(:foo)` raise `NameError`, even though `g.foo` succeeds?class Ghost def method_missing(name, *args) "ghost:#{name}" end end g = Ghost.new p g.foo p g.respond_to?(:foo) g.method(:foo)