Модификаторы доступа Kotlin

Я пытаюсь изучить Kotlin и наткнулся на путаницу в отношении модификаторов доступа, в отличие от Java, у Kotlin есть модификаторы Private, Public, Internal и Protected access,

Так что же такое же, как и пакет? Небольшой пример:

package A private fun foo() {} // visible inside example.kt public var bar: Int = 5 // property is visible everywhere private set // setter is visible only in example.kt internal val baz = 6 // visible inside the same module 

В Java существует концепция пакета, но не в Котлине.

В Java, пакет означает, что A представляет собой группу аналогичных типов классов, интерфейсов и подпакетов.

В отличие от Java, Kotlin имеет концепцию модуля, согласно документации ктлин, определение модуля выглядит следующим образом:

Модули в Котлине

Внутренний модификатор видимости означает, что элемент видим с тем же модулем. Более конкретно, модуль представляет собой набор файлов Kotlin, скомпилированных вместе:

  1. модуль IntelliJ IDEA;
  2. проект Maven или Gradle;
  3. набор файлов, скомпилированных с одним вызовом задачи Ant.