&gt; I feel like a new systems language needs to come and make aliasing explicit in a way, so that it doesn&#x27;t surprise programmers but still allows them to get the optimizations that they want. Tracking uniqueness like Rust is a good first step, but it doesn&#x27;t work for unsafe code or anything with more subtle aliasing relationships.<p>I think it could be added to Rust. :)<p>Uniqueness can be viewed as just a starting point. It&#x27;s a conservative subset of more sophisticated systems like PALE. Since it&#x27;s a subset, it could be expanded to the full system eventually.<p>I think the biggest problem is not implementing it or finding a way to slot it into the language design but rather making it easy enough to use to achieve widespread adoption. Rust already stretches the boundaries of programmers&#x27; willingness to learn new type systems&#x2F;static analyses to control aliasing, and it has, as you point out, a very simple system. In fact, I think it&#x27;s unproven that programmers will be willing to adopt such a system en masse at all†, since Rust is still niche. If and when Rust really takes off in widespread production, we&#x27;ll have proof that programmers are willing to adopt aliasing information in the type system.<p>† It&#x27;ll be interesting to see how the ISO Core C++ lifetime checker fares here. I&#x27;m not optimistic about how much use it will get due to complexity and effectively being a different language from C++, but I&#x27;d love to be proven wrong.