Problem Statement
What is the default visibility modifier in Kotlin?
Explanation
Kotlin's default visibility is public unlike Java's package-private, meaning declarations are visible everywhere by default. Kotlin provides private for visibility within the same file or class, protected for visibility in subclasses, and internal for visibility within the same module which is a compilation unit like a Gradle project or Maven artifact.
The internal modifier is unique to Kotlin providing better encapsulation than Java's package-private which can be circumvented by creating classes in the same package. Kotlin also doesn't have package-private visibility, encouraging proper encapsulation through well-defined module boundaries rather than package-level access control.