Thank you for your answers Brian! Indeed, the current model is easy to understand and reason about, which is the most important aspect. And it maps well to Java source code.
Regarding Scala, the main problem is the granularity: setting the visibility of each method individually goes far beyond the curly brace encapsulation model. I think the only reasonable way short of having a Scala VM is to keep generating accessors (or, as you suggested, making members public and reasoning about the accessibility at language level). Regarding Peter's question, I assume the reason you want to have a top of the nesting hierarchy is because you need to dynamically add new nestmates, which is easier to do in one place than in all nestmates. Right? Thanks, Vlad
