incremental. I had no idea what incremental computation was up to this point and it appears to answer my use-case very nicely. However, I saw that in incremental cycles in the dependencies graph are not allowed, whereas in Adapton there is a way to inject a way of handling cycles (https://docs.rs/adapton/0.3.30/adapton/#dcg-cycles-detection-and-valuation). Did I understand this difference correctly?
If you want to see the engine in action, with examples, I'd actually recommend starting with Fungi: https://github.com/Adapton/fungi-lang.rust
The macros of the Adapton Rust library have evolved into a new programming language, within Rust, with its own syntax and type system. Under the hood, its interpreter uses Adapton as an external library: https://docs.rs/fungi-lang/0/fungi_lang/reduce/index.html
fungi-lang.rustrepo above, and running
cargo test, which will generate a bunch of output that illustrates how Adapton supports Fungi programs that evaluate incrementally. Of course, Fungi is written in Rust, so the same ideas transfer beyond Fungi, to other Rust programs (that aren't necessarily new PLs).