          (set! (.-watchers self) (dissoc watchers key))
          (when (empty? watchers)
            (set! (.-watchers-added self) false)
-           (set! (.-cache self) +empty+)
            (remove-watch src id)))))
 
    :cljs

       (set! (.-watchers self) (dissoc watchers key))
       (when (empty? watchers)
         (set! (.-watchers-added self) false)
         (set! (.-cache self) +empty+)
         (remove-watch src id)))))

#?(:clj

       (set! (.-watchers self) (dissoc watchers key))
       (when (empty? watchers)
         (set! (.-watchers-added self) false)
         (remove-watch src id)))))

(defn derive
