&gt; To your point however, `const` does not imply constant in the sense of other languages (like `.freeze()` does) so it does mean your target future audience is someone who is familiar with some of the nuances of recent JavaScript, an assumption that can be dangerous to make.<p>Does any other language than Rust implement it this way? I know Rust needs to, for the borrowing semantics.<p>Java does it the same way as JS. Scala and Haskell both make everything immutable by default as convention, but there&#x27;s nothing preventing you from mutating a `var` field of a `val` reference, or abusing `unsafePerformIO` to modify an `IORef` from a supposedly pure context.