Lenses for Partially-Specified States (Extended Version)
By: Kazutaka Matsuda, Minh Nguyen, Meng Wang
Potential Business Impact:
Lets many computer screens show same info.
A bidirectional transformation is a pair of transformations satisfying certain well-behavedness properties: one maps source data into view data, and the other translates changes on the view back to the source. However, when multiple views share a source, an update on one view may affect the others, making it hard to maintain correspondence while preserving the user's update, especially when multiple views are changed at once. Ensuring these properties within a compositional framework is even more challenging. In this paper, we propose partial-state lenses, which allow source and view states to be partially specified to precisely represent the user's update intentions. These intentions are partially ordered, providing clear semantics for merging intentions of updates coming from multiple views and a refined notion of update preservation compatible with this merging. We formalize partial-state lenses, together with partial-specifiedness-aware well-behavedness that supports compositional reasoning and ensures update preservation. In addition, we demonstrate the utility of the proposed system through examples.
Similar Papers
Bialgebraic Reasoning on Stateful Languages
Programming Languages
Makes computer programs easier to prove correct.
Canonical bidirectional typechecking
Programming Languages
Makes computer code check itself automatically.
Virtual Reality Lensing for Surface Approximation in Feature-driven DVR
Graphics
Lets you see hidden details in 3D pictures.