Asynchronous Reactive Programming with Modal Types in Haskell
- ,
- Emil Houlborg,
- Gregers Thomas Skat Rørdam
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishPages from-to (Number of pages)
Pages 18-36Publication milestones
- Published - 10/01/2024
Publication status
Published - 10/01/2024
Volume
14512Publisher
Springer, United States, GermanyBook series
- Book series name: Lecture Notes in Computer Science
ISSN: 0302-9743
Publication IDs
- Scopus: 85182603045
Host publication title
Practical Aspects of Declarative LanguagesAbstract
The implementation of asynchronous systems, in particular graphical user interfaces, is traditionally based on an imperative model that uses shared mutable state and callbacks. While efficient, the combination of shared mutable state and callbacks is notoriously difficult to reason about and prone to errors. Functional reactive programming (FRP) provides an elegant alternative and recent theoretical advances in modal FRP suggest that it can be efficient as well.
In this paper, we present Async Rattus, an FRP language embedded in Haskell. The distinguishing feature of Async Rattus is a modal type constructor that enables the composition of asynchronous subsystems by keeping track of each subsystem’s clock at compile time which in turn enables dynamically changing clocks at runtime. The central component of our implementation is a Haskell compiler plugin that, among other aspects, checks the stricter typing rules of Async Rattus and infers compile-time clocks. This is the first implementation of an asynchronous modal FRP language. By embedding the language in Haskell we can exploit the existing language and library ecosystem as well as rapidly experiment with new language features and library design. We hope that such experimentation with Async Rattus sparks further research in modal FRP and its applications.
In this paper, we present Async Rattus, an FRP language embedded in Haskell. The distinguishing feature of Async Rattus is a modal type constructor that enables the composition of asynchronous subsystems by keeping track of each subsystem’s clock at compile time which in turn enables dynamically changing clocks at runtime. The central component of our implementation is a Haskell compiler plugin that, among other aspects, checks the stricter typing rules of Async Rattus and infers compile-time clocks. This is the first implementation of an asynchronous modal FRP language. By embedding the language in Haskell we can exploit the existing language and library ecosystem as well as rapidly experiment with new language features and library design. We hope that such experimentation with Async Rattus sparks further research in modal FRP and its applications.
Publication metrics
PlumX, opens in new tab
Citations
1
Access to documents
License:Unspecified
Related Event
Title
Practical Aspects of Declarative Languages
Event type
ConferenceDegree of recognition
International eventDate
15/01/2024 - 16/01/2024Location
United Kingdom LondonUnited Kingdom
