 
 ;;; Queueing
 
-(defonce rea-queue nil)
-(def empty-context #js{})
+(defonce ^:private rea-queue nil)
+(def ^:private empty-context #js{})
 
 (defn- rea-enqueue [r]
   (when (nil? rea-queue)

  new)

(defn- add-w [this key f]
  (let [w (.-watches this)]
    (set! (.-watches this) (check-watches w (assoc w key f)))))

(defn- remove-w [this key]
  (let [w (.-watches this)
        r -running]
    (set! (.-watches this) (check-watches w (dissoc w key)))))

(defn- notify-w [this old new]
  (reduce-kv (fn [_ k f]
               (f k this old new)
               nil)
             nil (.-watches this))
  nil)

(defn- pr-atom [a writer opts s]

(declare ^:dynamic *ratom-context*)
(defonce ^boolean debug false)
(defonce ^boolean silent false)
(defonce ^:private generation 0)
(defonce ^:private -running (clojure.core/atom 0))

(defn ^boolean reactive? []
  (not (nil? *ratom-context*)))
