Joe: Should have a categorization layer above modules for delineating sets of modules intended to be built as a single shared library/executable/object file. (Rust calls these "crates".) By formalizing what gets exported from a package, the compiler can be more strict about what it allows to export, while maintaining the status quo of free incest among modules within a package.