<div dir="ltr"><div>I believe the language would be improved by making structures immutable.</div><div><br></div><div>1) The choice between classes and structures isn’t clear right now. If structures were immutable it would be natural to use them as value objects.</div><div><br></div><div>2) Refactoring a mutable structure into a class when it’s being passed around multiple threads removes the by-value semantics seamlessly. The resulting mutable class isn’t thread-safe.</div><div><br></div><div>2.1) Even when passed around a single thread, the resulting class would be passed by reference, so any mutations would have unintended consequences.</div><div><br></div><div>3) We could probably remove some syntax: `mutating` keyword and variable parameters. Also the `var` keyword before a structure could be used to denote reassignment (not mutability), just as it does with classes.</div><div><br></div><div>Of corse I might not be seeing the whole picture, so please weigh in.</div></div>