 
   TreeSearch
 
-  (search [this k]
+  (lookup [this k]
     (when-let [child (get children k)]
       (if (satisfies? TreeSearch child)
-        (search child k)
+        (lookup child k)
         child))))
 
 
-(defn b+tree [b]
+#_(defn b+tree [b]
   (->B+TreeNode b 0 (sorted-map) true))

      (<= (compare k k*) 0) [k* v*]
      true                  (recur ks* vs*))))

(defn- inode-split [{:keys [b ks vs size] :as n}]
  (let [partition-size  (-> size (/ 2) Math/ceil int)
        [ks1 ks2]       (partition-all partition-size ks)
        [ks1 nk]        [(butlast ks1) (last ks1)]

     nk
     (internal-node b ks2 vs2 (- partition-size (rem size 2)))]))

#_(defn- inode-ins [{:keys [b ks vs size] :as n} k v]
  (if-not (= k ::inf)
    (let [[ks1 ks2] (split-with #(< (compare % k) 0) ks)
          [vs1 vs2] (split-at (count ks1) vs)
