   (-meta [coll] meta)
 
   IWithMeta
-  (-with-meta [coll meta] (NodeSeq. meta nodes dlen nloc i s __hash))
+  (-with-meta [coll meta] (NodeSeq. meta arr lvl nodes cursors-lengths data-idx data-len __hash))
 
   ICollection
   (-conj [coll o] (cons o coll))

             (if (< i 100)
               (recur (assoc m (nth test-keys i) i) (inc i))
               m)))
  (let [thm (loop [m lem i 0]
              (if (< i 10000)
                (recur (assoc m (nth test-keys i) i) (inc i))
                m))
        root (.-root thm)
        nodes (make-array 7)
        cursors-lengths (make-array 14)]
    (aset nodes 0 root)
    (aset cursors-lengths 0 0)
    (aset cursors-lengths 1 (.node-arity root))
    (let [args [(.get-array root) 0 nodes cursors-lengths 0 (.data-arity root)]
          args (if ^boolean (.has-data? root) args (apply node-next-seq args))]
      (loop [i 1 args args]
        (if-let [nargs (apply node-next-seq args)]
          (recur (inc i) nargs)
          i))))
  (let [times 1000
        hm1 (loop [m lem i 0]
               (if (< i times)

  ISequential
  ISeq
  (-first [coll]
    [(aget arr (* data-idx 2)) (aget arr (inc (* data-idx 2)))])

  (-rest [coll]
    (create-inode-seq arr lvl nodes cursors-lengths data-idx data-len))

  ISeqable
  (-seq [this] this)
