Чем `val` отличается от `var` и делает ли `val` объект неизменяемым?
val означает, что ссылку нельзя переприсвоить, var — что можно. Объект это неизменяемым не делает: в val, хранящем MutableList, элементы по-прежнему добавляются. Для настоящей неизменяемости нужен неизменяемый тип, а не только неизменяемая привязка.