ILC: Creating an API for producing changes
In incremental lambda calculus, to update the output we need a description (represented as data) of how the input of a program changes. Comparing the old and the new input is overly expensive; instead, it would be convenient to create a description of the changes while they happen. The goal of this thesis is to design (and implement) a solution to this problem, focusing on the case of collections.
Some possible approaches:
- design a library allowing to describe the changes, and investigate whether it can have other potential applications (also in relations to transducers from Clojure);
- design a library that allows to change the input and create a change by “logging” performed actions;
- design a program transformation from the code that changes the input to the code that produces the change.