     (as-> watch-s $
       (rx/with-latest-from vector state-s $)
       (rx/flat-map (fn [[event model]] (-apply-watch event model stream)) $)
+      (rx/catch on-error $)
       (rx/on-value $ emit!))
 
     ;; Process effects: combine with the latest model to process the new effect


(enable-console-print!)

(defn init
  "Initializes the stream event loop and
  return a stream with model changes."

        update-s (rx/filter update? stream)
        state-s (->> update-s
                     (rx/scan #(-apply-update %2 %1) state)
                     (rx/catch on-error)
                     (rx/share))]

    ;; Process event sources: combine with the latest model and the result will be
