Не использовать рекорды как классы
Проблема в том, что для внутренней логики хочется изменять содержимое рекорда, из-за чего появляются ref, которые дают возможность менять состояние любому пользователю рекорда. Можно было бы, наверное, сделать мутабельный PrivateRecord и иммутабельный PublicRecord, но гораздо проще использовать обычный класс и изменять внутреннее состояние человеческим способом.
из-за рефов
Проверяет название чата Но есть же иммутабельные рекорды, разве нет?
Ну, формально рекорд с ref иммутабельный, ведь mutable полей нет. Но содержимое может меняться, я это имел в виду.
А рекорд без ref?
Кажется, я не понимаю твоего вопроса. Рекорд с List<T> формально иммутабельный, потому что ты не можешь в уже существующий инстанс запихнуть свой список. Но докинуть в список значения никто не мешает.
он вроде даже формально частично перестает быть иммутабельным - не получится его уже сравнить
Обсуждают сегодня