Do not let your type system reason about aliasing in your programming language
Summary
This blog post from the Futhark project examines a complex aliasing and consumption design in its type system, focusing on in-place updates and how alias tracking affects language semantics. It covers background on consumption, aliases, functions, tuples, higher-order functions, and modules, highlighting ergonomic and soundness tradeoffs and possible future improvements.