your rules sound a little bit complicated. I think we should model the reference rules after the python namespace visibility rules,
Actually, i did try to model the rules after namespace rules (note the rules with respect to dotted references to things in other modules).
This behaviour seems "obvious" to me. The outcome may not be so very different from what you described in your ruleset.
It's kind of too bad that it came out appearing complicated. What i tried to do there was to give an exact specification of an algorithm that would yield the kind of "simple" or "obvious" behaviour you expect. A more succinct description of the intended behaviour would be: 1. dotted.references to classes or functions in other modules 2. dotted.references to class methods or attributes 3. references() to class methods or functions 4. references to class names in the local module Unfortunately the attempt to be very precise about how to achieve this behaviour yielded a long-winded and pedantic description. I just wanted to provide a very clearly stated framework for us to pick and poke at. -- ?!ng <http://www.lfw.org/ping>