Incremental computation is at the heart of GUI toolkits and other reactive software. The xi-editor project was based on explicit tracking and transformation of deltas, and, while this approach was efficient, it also proved extremely complex, as are incremental computation frameworks such as Adapton. In practice, many systems rely on diffing the contents, which is convenient but slow.
This talk introduces a new approach, using immutable data structures to provide a programmer API as convenient as ordinary Vec and as efficient as complex incremental frameworks. The techniques highlight one of the great strengths of Rust, its ability to express very high level concepts while at the same time attending to the lowest level details. This work has been a long journey, supported by the Rust language and Rust community.