title: Availability of methods defined in Module.singleton_class
body: <p>Hi I'm a bit confused over Ruby's object model here:</p>
  
  <pre><code>class Module
    # `hello` should be readily available within all regular classes
    def hello
      'Hello World'
    end
  end
  
  # `special` should be available within all regular singleton classes
  class Module
    class &lt;&lt; self
      def special
        puts 'This is the special method defined in Module.singleton_class'
      end
    end
  end
  
  class MyClass
    hello  # =&gt; 'Hello World'
    # special  # this correctly raises an error here
    # special should only available in MyClass.singleton_class and it actually is.
    # However `hello` method shouldn't be available in `MyClass.singleton_class` (only in MyClass) but yet it is. Why?
    class &lt;&lt; self
      special # This only works here as it should
      hello  # but strangely this works too! It shouldn't though...
    end
  end
  </code></pre>
  
  <p>Could you please explain to me why is method <code>hello</code> available in <code>MyClass.singleton_class</code> since it is defined in <code>Module</code> and not <code>Module.singleton_class</code>?</p>
  
  <p>Thank you.</p>