Wed Feb 20 09:03:35 EST 2019


Event driven systems and smart updates are a central problem to
everything I do.  Get a better handle on it.

There is a constant tension between two viewpoints:
- push: change a value and propagate upward
- pull: recompute the entire data structure

Both can be combined with caching.

Usually a system is implemented as a combination of these.  If a push
is not implemented at a certain level (lack of reified inverted
dependencies), it is often possible to go up one level of hierarchy
and perform a pull.

Maybe it is a good idea to create this as a data structure in Haskell,
and then try to relate several things to it.  Redo redo?