> And I don't believe in "premature correctness". ;-) Interesting statement. Translation: "Resolve as late as possible". This indeed has consequences for both language and compiler design. E.g. for incremental compilation. The compiler collects packed AST parts . At the very end, they get checked against precompiled encoded parts (available already) and if parts match, the precompiled part will be taken - resolution using a cache. But if the compiler could prove stable contexts early, so that some parts will not change later on, the compiler would do a split. Either, the cache already provides an encoded version - nothing needs to be done then, elsewise, it could be passed to another thread/processor.
C++ modules clearly give priority to early resolution.