Tue Jun 6 10:45:19 EDT 2017

GUI: Event propagation graphs

Some ideas:

- Eventually, the computer this runs on needs to execute a sequence of
commands, propagating data in a way that is not circular.

- The problem seems simple if we didn't have to worry about this

  - Push: a value changes, and it is expressed manually which other
    values have to change in response.  If this leads to cycles, the
    system will break the cycle by distinguishing old vs. new.

  - Pull: every value in the system is a function of another value.
    This is the "reactive" paradigm?

  - Constraint: there are a number of constraints between values, and
    the system would resolve these when one of them is updated.


- Read Conal's push/pull functional programming.  The push and pull
  ideas are central to the idea and I might have reinvented parts of
  his idea in the data elements implementation.

- I believe what I really want is a compiler from a constraint-based
  specification of a GUI to an static eager imperative event handler.
  Read more about constraint programming.