A module is a set of Kotlin files compiled together, such as a Gradle source set, Maven project, or IntelliJ IDEA module. Kotlin uses the module boundary to enforce internal visibility and encapsulate implementation details. section 4.1.3
Internal declarations inside a module
Marking a class or top-level declaration internal makes it visible throughout its module but unavailable to external modules. A Gradle test source set can access internal declarations from its main source set. Kotlin uses packages for namespaces, not package-private visibility. section 4.1.3
Table 4.2 Kotlin visibility modifiers (view table figure)
Compare internal visibility with public, protected, and private visibility across class members and top-level declarations. section 4.1.3


































