Exploring the Kotlin Type System and understanding Null Safety