First-class signals for Functional Reactive Programming

Abstract: Functional Reactive Programming (FRP) makes it
possible to implement reactive and interactive systems in a
declarative style. The programmer describes temporal behavior of
system components using continuous and discrete signals, which
represent time-varying values and event streams, respectively. Signal
combinators make it possible to construct complex signals out of
simpler ones.

In this talk, I will first give an introduction to FRP and present a
straightforward implementation of an FRP subset in Haskell. I will then
show why this implementation fails to provide signals as first-class
values. Finally, I will explain how this problem can be solved by
employing lazy evaluation and advanced type system features.