 
   ICounted
   (-count [coll]
-    (if (.-edit root)
+    (if ^boolean (.-edit root)
       cnt
       (throw (js/Error. "count after persistent!"))))
 
   IIndexed
   (-nth [coll n]
-    (if (.-edit root)
+    (if ^boolean (.-edit root)
       (aget (array-for coll n) (bit-and n 0x01f))
       (throw (js/Error. "nth after persistent!"))))
 

      (throw (js/Error. "conj! after persistent!"))))

  (-persistent! [tcoll]
    (if (.-edit root)
      (do (set! (.-edit root) nil)
          (let [len (- cnt (tail-off tcoll))
                trimmed-tail (make-array len)]

      (throw (js/Error. "assoc! after persistent!"))))

  (-pop! [tcoll]
    (if ^boolean (.-edit root)
      (cond
        (zero? cnt) (throw (js/Error. "Can't pop empty vector"))
        (== 1 cnt)                       (do (set! cnt 0) tcoll)
