Relational Lenses as a Library (Demo)
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
|A Low-Latency Garbage Collector for GHC (Demo)|
Ben Gamari Well-Typed LLP, Laura Dietz University of New Hampshire
|Relational Lenses as a Library (Demo)|
Rudi Horn University of EdinburghFile Attached
|Scripted Signal Functions|
David A. Stuart NoneDOI
|PC Chair Report|
Tom Schrijvers KU Leuven