Don’t forget that behind the scenes a value type might actually be used as a reference type when the code is compiled, for performance reasons, but conceptually the language encourages you to think of everything as value types when possible.
A big part of the semantics in the language is “copy on write”.
A big part of the semantics in the language is “copy on write”.