On Wed, Jan 30, 2002 at 08:56:07AM +0900, Yukihiro Matsumoto wrote:
> Visible constants are:
> 
>   * constants defined in the class/module.
>   * constants defined in the outer class/module.
>   * constants defined in the ancestors.

If a constant is visible in an outer class, is there a good reason for
having that constant not be visible in the inner class? (as in the
original example)

Additionally, if a constant is visible in an ancestor, is there a good
reason for having that constant not be visible in the descendant class?
(as in the following example)

  module A
    Foo = 42
    module B
      puts Foo
    end
  end
  module C
    include A::B
    puts Foo
  end

Your explanation makes sense, but I question whether or not it is the
desirable effect.

Paul