                            ^number cut-to
                            ^number splice-from
                            ^number splice-to
-                           ^array  xs] ;; TODO slice + concat?
+                           ^array  xs]
   (let [arr-l   (alength arr)
         xs-l    (alength xs)
         l1      (- splice-from cut-from)

        :else m))
    l))
    
(defn ^number lookup-leaf [^array arr key]
  (binary-search arr 0 (- (alength arr) 1) key))

(defn ^number lookup-node [^array arr key]
  (binary-search arr 0 (- (alength arr) 2) key))

(defn ^number -seek [set key]

         path  empty-path
         level (.-shift set)]
    (if (== 0 level)
      (path-set path level (lookup-insert-leaf (.-keys node) key))
      (let [idx (lookup-insert-node (.-keys node) key)]
        (recur (aget (.-pointers node) idx)
               (path-set path level idx)
               (- level level-shift))))))
