To val, or to const val, that is the question

When starting to learn Kotlin, one of the main observable differences compared to Java is that every variable/value definition comes first with any of these three keywords: var, val or const val.

It is pretty clear that var allows mutation while val defines immutability. There is no chance that any val or const val can change the object they are referencing or the value they contain…