Patrick Bahr IT University of Copenhagen

Functional Reactive GUI Programming with Modal Types

Jean-Claude Disch, Asger Heegaard and Patrick Bahr
Submitted for peer review, November 2024.

Abstract

Functional reactive programming (FRP) is a programming paradigm for implementing reactive systems, i.e. programs that continuously interact with their environments. While FRP allows for a functional, high-level programming style, FRP programs are prone to undesirable operational behaviours such as space leaks. To ensure favourable operational properties of FRP programs, modal type systems have been introduced, which – among other things – make it impossible to write FRP programs with implicit space leaks. In a recent development, several modal FRP languages have been introduced that are able to accommodate asynchronous events and behaviours – motivated by the goal to use such languages for GUI programming.

This paper explores the suitability of one such asynchronous modal FRP language – called Async Rattus – for GUI programming in practice. To this end, we have implemented a mild extension of the Async Rattus language and used it to implement a small GUI framework. We demonstrate the language and its GUI framework by a number of case studies.

Categories: Compilers, Formal Verification

Tags: Functional Reactive Programming, Modal Types, Type Systems, GUI, Haskell