 
   (replace [node key val left right]
     (BlackNode. key val left right nil))
+
+  (kv-reduce [node f init]
+    (tree-map-kv-reduce node f init))
 
   (toString [this]
     (pr-str this))

                            (recur (+ s 2) (+ d 2))))))))
        coll)))

  IFn
  (-invoke [coll k]
    (-lookup coll k))

             (pv-aset ret subidx nil)
             ret))))

(declare tv-editable-root tv-editable-tail TransientVector deref)

(deftype PersistentVector [meta cnt shift root tail ^:mutable __hash]
  Object
