         (.notifyFWatches this old-val new-val)
         new-val)))
   (clean [this]
-    (when  (and (identical? 0 watchers) (identical? 0 iwatchers))
+    (when (and (identical? 0 watchers) (identical? 0 iwatchers))
       (goog.object/forEach deps
                            (fn [val key obj]
                              ;; (println "cleaning:" key val)

    (-assoc-in! [this ks v]
      (set! (.-change-ks this) ks)
      (swap-fn assoc-in ks v)))

(apply-js-mixin Cursor fwatch-mixin)

(defn atom
  "Creates and returns a ReactiveAtom with an initial value of x and zero or

   #(.rawDeref %)
   #(.addInvalidationWatch % %2 %3)
   #(.removeInvalidationWatch % %2)
   #(.clean %)))

(def rx-mixin
  #js
