FIXME: write docs
(app init-state)
(app init-state default-handler-fn)
(default-handler-fn data)
(unwrap-promise v)
(update-app {:keys [prev-state dom root handler-fn]} new-state)