`val` to referencja tylko-do-odczytu (nie da się jej przepisać), a `var` jest mutowalne (da się przepisać). `val` nie czyni obiektu automatycznie niemutowalnym.
`val` oznacza, że referencja nie może być ponownie przypisana po inicjalizacji. `var` oznacza, że możesz przepisać ją na inną wartość.
To dotyczy *referencji*, nie obiektu:
val xs = mutableListOf(1)
xs.add(2) // OK
// xs = mutableListOf(3) // nie OK
var n = 1
n = 2 // OK