I wrote: > Better, you could have a hierarchy of 'uber-scopes', and do namespaces > properly. I say 'properly' because in C++ you cannot implicitly address your > parent namespace. Oops, I meant that you cannot *ex*plicitly address your parent namespace. The distinction was important enough for me to make another post, when I feel that popular opinion is that I should go away. I want to be able to relatively compose namespaces. To be, err, explicit, I want the following: void spam() { } namespace foo { void spam() { } namespace bar { void spam() { } void hierarchical_namespaces() { spam(); ::spam(); ..::spam(); // illegal syntax, but valid semantics } }; }; BTW, a language I wrote (pi) allows this. Effectively, the 'heap' was replaced by a UNIX-like filesystem: every object had a scope (a qualified name), and you could traverse scope by traversing namespaces. In this sense, the 'current working directory' was the 'this'. Moreover, 'inheretance' was implemented by name resolution based on what 'directory' was 'current'. A square is a shape because of /lib/geom/shape/square. A maple tree is an object because of /scripts/objects/tree/maple. No, it didn't wash because although ppl know directories, they couldn't translate that knowledge to object declarartion, definition, and application. Is this important? Is this useful? Is this implementable? Possibly, probably, yes. Christian.