 
 (deftype BlackNode [key val left right]
   Object
+  (toString [this]
+    (pr-str this))
+
   (add-left [node ins]
     (.balance-left ins node))
 

  (-seq [this] this)

  IEquiv
  (-equiv [coll other] (equiv-sequential coll other)))

(defn- create-inode-seq
  ([nodes]

               (.inode-assoc! edit shift key2hash key2 val2 added-leaf?)))))))

(deftype NodeSeq [meta nodes i s]
  Object
  (toString [this]
    (pr-str this))

  IMeta
  (-meta [coll] meta)

  IWithMeta
  (-with-meta [coll meta] (NodeSeq. meta nodes i s))

  ICollection
  (-conj [coll o] (cons o coll))

  IEmptyableCollection
  (-empty [coll] (with-meta cljs.core.List/EMPTY meta))

  ISequential
  ISeq
