The key idea of functional reactive programming (FRP) is time-varying values, which the Elm language calls Signals. In a discrete FRP system like Elm, you can think of a Signal as a stream of individual events. Rather than using a callback function to swing at every event that shows up, we use higher-level operators to manipulate a whole stream of events at once. Signals fit modern "real-time" soc