What we ended up doing about alias propagation

Posted on October 11, 2026

I recently wrote a post about open questions regarding alias propagation in the Futhark type checker. The questions have now been resolved, and while I am not going to re-explain the entire context for this post (it is by far the most complicated corner of the Futhark type system, in the bad way), I want to summarise some of the most important design conclusions. Some of these deviate from what I normally consider good taste in language design, but they result in a design that is simple and supports the kind of patterns that appear in real Futhark code. I will also touch on why I have reasonable confidence that the design is sound, although only time will tell whether it is also good.