 
    (-/p (xpand form1 {:name "name1" :ns "ns1"} ))
 
+   (-/p (eval (xpand form1 {:name "name1" :ns "ns1"} )))
+
    (def form2 '(str (inc 1) 3))
 
    (-/p (xpand form2 {:name "name1" :ns "ns1"} ))
 
-   (-/p (eval (xpand form1 {:name "name1" :ns "ns1"} )))
+   (-/p (eval (xpand form2 {:name "name1" :ns "ns1"} )))
+
+   (def form3 '(if 1 2 3))
+
+   (-/p (xpand form3 {:name "name1" :ns "ns1"} ))
+
+   (-/p (eval (xpand form3 {:name "name1" :ns "ns1"} )))
+
 
    (comment))
 


(defn record-trace-tree
  [[log src-map]]
  (-/p (@log nil))
  (def log' @log)
#_  (loop [[head & body] log
         tree-map {}

(defn tr-fn
  [inner-path [recent-trees src-map] template f]
  (fn [& args]
    (let [this (-> @(produce-recent-tree-atom! #spy/d inner-path
                                               recent-trees)
                   (merge #spy/d template)
                   (assoc :args (vec args)
                          :arg-map (delay (zipmap (:arg-forms template)
                                                  args))
                          :started-at (trace/now)))
          _ (update-tree! this recent-trees)
          [value throw] (binding [trace/*trace-log-parent* this]
                          (try
                            [(apply f args) nil]
