Finally adding recursive functions to Futhark
Summary
Futhark historically avoided recursive functions due to GPU stack limits and memory constraints, but the post explains how flattening and targeted compiler workarounds aim to enable recursion across backends. It covers how recursion interacts with the type checker, higher-order functions, and lambda lifting, and notes that recursion is not yet enabled in master. The piece also warns that recursive data-parallel code can be memory-intensive and outlines future work to expose flattening to users.