From Sketchpad to self-adjusting computation: a model of what UI frameworks retain, invalidate, recompute, and preserve after an edit.