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. Here's a problem related to the original poster's problem. When I do this: module Config A = 1 end module Config2 include Config A = 42 end class Foo include Config2 def initialize p A end end Foo.new I get 42. But when I do this: class Bar def initialize(t) extend(t) p A end end Bar.new(Config2) I get an exception. Is Config2 not one of Bar's ancestors? Paul