Tempo: Reconstructing Synchronous Reactive Programming with OCaml 5 Effects
summary
Tempo reconstructs synchronous reactive semantics as an OCaml 5 library using OCaml 5 effects and deep handlers, reifying continuations into scheduler tasks carrying guards, kill tokens, joins and signal frontiers. It implements delayed absence and structured reactive control so closure decides absence only after quiescence. Evaluation compares Tempo to ReactiveML: median runtime overheads are workload-dependent with a geometric mean around ≈3× time and peak RSS about 1.6×, showing the library is viable but incurs measurable costs.
AI-written summary · about
chapters (11)
- 0:00Tempo introduction and goals
- 1:50Execution model
- 3:59Effect handlers in Tempo
- 5:08Scheduling choices matter
- 7:15Reactive task scheduling
- 10:46Scheduler preserves constraints
- 12:10Delayed absence and order independence
- 15:04Runtime costs evaluation
- 17:56Workload results and overhead
- 19:26Summary of contributions
- 20:31Q&A: Proving determinism
related talks
32mEffective Programming in OCaml
36mAsynchronous Reactive Programming with Modal Types in Haskell
46mFunctional effects in perspective
29mThe Essence of Reactivity
31mThe Beauty and Elegance of Functional Reactive Animation
45mFunctional Reactive Programming in Elm
29mModal FRP for all: Functional reactive programming without space leaks in Haskel...
30mTroll Driven Development: Implementing Functional Effects by Way of Self-Lobotomy
