Functional Reactive GUI Programming with Modal Types
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