A reactor is a simple way to express an interactive program. It allows us to
write programs in terms of some initial state and transformations of that
state in response to inputs and clock ticks.
This is the basic interface. See Reactor for a more user friendly
implementation.