Functional-reactive programming considers everything as a function of time, but this approach can be computationally expensive and inconvenient.User interfaces can view time as both a continuous dimension and a series of discrete events.Defining time as a sequence of past events can simplify management and testing of actions and reactions in UI.Event stream libraries provide operators to reconcile different event sequences into a new one, making time relative and manageable.