 
   (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))

                (aset earr (dec (* 2 cnt)) nil)
                (aset earr (- (* 2 cnt) 2) nil)
                (set! (.-cnt editable) (dec (.-cnt editable)))
                editable))))))

  (kv-reduce [inode f init]
    (inode-kv-reduce arr f init)))

(defn- create-node
  ([shift key1 val1 key2hash key2 val2]
