   (instance? DataNode node))
 
 ;(println (b-tree :foo :bar :baz))
-;(pp/pprint (b-tree :foo :bar :baz))
+;(pp/pprint (apply b-tree (range 100)))
 (defn print-data-node
   [node ^Writer writer fully-qualified?]
   (.write writer (if fully-qualified?

  (last-key [_] last-key)
  (resolve [_] node))

;;TODO make this a loop/recur instead of mutual recursion
(declare flush-tree)



(defmethod pp/simple-dispatch DataNode
  [node]
  (let [out ^Writer *out*]
    (.write out (str "DataNode"
                     (node-status-bits node)))
    (.write out (str {:children (:children node)}))))

(defn backtrack-up-path-until
  "Given a path (starting with root and ending with an index), searches backwards,
