Asynchronous Reactive Programming with Modal Types in Haskell
summary
Async Rattus is an embedded FRP library plus a GHC compiler plugin that enforces modal typing, performs clock inference, and elaborates user stubs into concrete implementations so programs really carry clocks at runtime. The plugin replaces the surface delay/advance primitives with clocked closures, inserts strictness to avoid space leaks, and rejects non‑causal or ill‑clocked code at compile time. Implementation is available on Hackage and claims to be the first asynchronous modal FRP in Haskell.
AI-written summary · about
chapters (25)
- 0:00Reactive programming intro
- 1:46Synchronous systems and signals
- 3:09Reactive design challenges
- 4:13Modal types for time reasoning
- 5:56Making systems async
- 8:49Implementing increment
- 10:15Haskell embedding challenges
- 12:21Asyrus language structure
- 13:24Writing code in Asyrus
- 15:13Signal processing combinators
- 16:20Clock derivation
- 18:29Later modality implementation
- 19:54Compiler plugin elaboration
- 21:18Haskell pipeline integration
- 22:23Summary and related work
- 24:09Try Asyrus resources
- 24:52Q&A strictness laziness
- 27:01Input types implementation
- 27:46Defining dmap
- 28:51Rewriting map
- 30:59Temporal typing barriers
- 32:28Strictness plugins
- 33:54Concurrency garbage collection
- 34:37Type error handling
- 35:22Error messages IDE
related talks
29mModal FRP for all: Functional reactive programming without space leaks in Haskel...
30mAsynchronous Modal FRP
29mWhat is Functional Reactive Programming?
31mThe Beauty and Elegance of Functional Reactive Animation
23mTempo: Reconstructing Synchronous Reactive Programming with OCaml 5 Effects
29mThe Essence of Reactivity
45mFunctional Reactive Programming in Elm
34mHackett: a metaprogrammable Haskell
