Kotlin has sealed classes (enums), when expressions (switch checking) and absolutely does have null safety. It also reinforces null safety when using Java libraries if they have nullability annotations.
But it's not really meant to be used as a pattern for writing actual code in an actual programming language. It exists as a way to implement recursion when we can't refer to named functions.
Edit: unless you are specifically talking about the use case of this article.
For some reason, Firefox reader view removes all section headings and some random paragraphs. Made for a confusing read until I went back and reread it.