Wed Aug 23 11:47:25 EDT 2017

So I have a tree differ

Very simple -- does only recursive maps, but it is likely good enough.

What problem does it solve?

It "condenses" edits.  

EDIT: A better way to explain: it adds a decoupling step.  It is
easier to update a model, condense it into a simpler one, then "diff"
that, than to directly translate the original "edits" into "view
updates".  So basically: "decouple edits from presentation updates".

Another thing: it is the declarative model that sits between two state
update models that live in different worlds.