Интересно, когда мы создаём копию рекорда по типу { record1 with SomeField = newValue }, то появляется полная копия и всех других полей record1? Или же система понимает, что по факту часть данных можно как-бы оставить общей? Предположим, что все поля неизменяемые
Если тебе интересно узнать больше про такие штуки, гугли персистентные структуры данных.
Их можно специально спроектировать таким образом, чтобы иметь как можно больше общего, и чтобы модифицированная копия шарила как можно больше с оригинальным объектом.