Relational lenses are a modern programming approach to the view-update problem for relational databases, taking influence from bidirectional transformations. For lenses to behave correctly, it is necessary to verify side conditions which perform additional checks on functional dependencies and predicates. The only existing relational lenses implementation we know of ensures that all of these checks can be performed by extending the host language with relational lens primitives. However, extending a language with specialised language features is not ideal, as it increases the risk of serious bugs and the amount of maintenance required.
We propose the use of type-level programming to perform these static checks, enabling the implementation of relational lenses as a library. We will demonstrate how relational lenses are implemented in Haskell and how existing Links code, using language integrated relational lenses, can be translated into code using the Haskell relational lens library.
Demo Proposal (demo.pdf) | 382KiB |
Thu 27 AugDisplayed time zone: Eastern Time (US & Canada) change
14:30 - 16:10 | Paper Session 2 - Animations and DemonstrationsHaskell at Haskell Chair(s): Exequiel Rivas Inria Paris | ||
14:30 30mTalk | A Low-Latency Garbage Collector for GHC (Demo) Haskell | ||
15:00 30mTalk | Relational Lenses as a Library (Demo) Haskell Rudi Horn University of Edinburgh File Attached | ||
15:30 30mTalk | Scripted Signal Functions Haskell David A. Stuart None DOI | ||
16:00 10mOther | PC Chair Report Haskell Tom Schrijvers KU Leuven |