FRP with first-class timelines

Playing with time could never go wrong.


From journal entry Undo via timeline-of-actions manipulation:

My master’s thesis was about making timelines/events in FRP first class values which can be modified, and using that to implement things like undo. I think this is a concept which should be explored more, and which would render an FRP-based programming environment super useful, because you could ask “what-if” questions and have a much better interactive development/debugging experience.

Having an FRP implementation in which timelines (Events) are manipulable allows:

Implementation

Arbitrary timeline editing requires an incremental implementation of FRP if you don’t want to replay all of history. This means that an implementation should focus on using associative, and preferably commutative, folds.