                               (.-right app)
                               (.-right right)))
           (RedNode. (.-key left) (.-val left)
+                    (.-left left)
                     (RedNode. (.-key right) (.-val right) app (.-right right)))))
       (RedNode. (.-key left) (.-val left)
                 (.-left left)

  (-seq [this] this)

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

(defn- create-array-node-seq
  ([nodes] (create-array-node-seq nil nodes 0 nil))


(deftype RedNode [key val left right]
  Object
  (toString [this]
    (pr-str this))

  (add-left [node ins]
    (RedNode. key val ins right))

