 
 
 (defn tr-let-ret
-  [path [recent-trees] template v]
-  (-> path
+  [recent-trees template v]
+  (-> template
+      :inner-path-chain
       (produce-recent-tree-atom! recent-trees)
       deref
       (merge template)

         (:inner-path @tree-atom)
         tree-atom))

(defn mk-recent-tree-at-inner-path
  [inner-path recent-trees]
  (if (nil? inner-path)
    (let [new-tree (get-temp-root-tree)]
      (push-to-recent-trees!  new-tree
                              recent-trees)
      new-tree)
    (let [parent (produce-recent-parent-tree-atom! inner-path
                                                   recent-trees)
          new-tree (-> (trace/mk-tree :parent @parent)
                       (assoc :inner-path inner-path
                              :parent-path (:path @parent))
                       atom)]
      (push-to-recent-trees! new-tree

      trace/untrace-var*))


#_ (defn f1 [a] (inc 2) (empty? [0 [1 2 (-> a inc dec)]])) ;; TODO


(defn f1 [a] (empty? [0 [1 2 (-> a inc dec)]]))

#_ (deep-tracer {:qual-sym 'com.billpiel.sayid.deep-trace2/f1
                 :meta' nil
                 :ns' 'com.billpiel.sayid.deep-trace2})

#_ (binding [trace/*trace-log-parent* {:id :root1 :children (atom [])}]
  (let [f (deep-tracer {:qual-sym 'com.billpiel.sayid.deep-trace2/f1
                        :meta' nil
                        :ns' 'com.billpiel.sayid.deep-trace2})]
    (f 2)
    (-/p trace/*trace-log-parent*)))

#_ (deep-tracer {:qual-sym 'xpojure.routes.home/home-page
              :meta' nil
              :ns' 'xpojure.routes.home})
