Why can\'t I access \'B\' in the following from \'A\' but can from the main environment?
module A; end A.instance_eval{B=1} B #=> 1 A::B #=> uninitial
. . . constants that are not defined within a class or module are given global scope.
What matters for constant definition is the enclosing lexical scope, not the current receiver or the value of self.
self