 (defn f2
   [a]
   (inc a)
-  (loop [b a]
+  (loop [b (+ a 0)]
     (if (< b 2)
       (recur (inc b))
       b)))

      (push-to-tree-atom!  new-tree
                           tree-atom)
      new-tree)
    (let [parent (produce-recent-tree-atom! (path-parents path)
                                            path-parents
                                            tree-atom)
          new-tree (-> (trace/mk-tree :parent @parent)

         conj
         node-atom))

(defn find-closest-parent
  [path path-parents]
  (clojure.pprint/pprint path)
  (if-let [parent (path-parents path)]
    parent
    (when-not (or (nil? path) (empty? path))
      (recur (drop-last path)
             path-parents))))

(defn mk-recent-tree-at-inner-path
  [path path-parents tree-atom]
  (if (= (count path) 1) ;; TODO is this the right way to detect root?
