   [a]
   (inc a))
 
-#_(let [$0-0-inc (partial tr-fn {:... :...})]
+#_(let [$paths {:... :...}
+        $0-0-inc (partial tr-fn {:... :...} $paths)]
     (fn [a]
       (let [$$ (atom [])
             $return ($0-0-inc inc $$ a)]
         (record-trace-tree! $$)
         $return)))
 
+#_(let [$paths {:... :...}
+        $0-0-inc {:paths $paths
+                  :template {:... :...}}]
+    (fn [a]
+      (let [$$ (atom [])
+            $return (tr-fn $0-0-inc $$ inc a)]
+        (record-trace-tree! $$)
+        $return)))
+
 #_ (inner-tracer {:qual-sym 'com.billpiel.sayid.inner-trace2/f1
                   :meta' {:ns 'com.billpiel.sayid.inner-trace2
                           :name 'com.billpiel.sayid.inner-trace2/f1}
                  :ns' 'com.billpiel.sayid.inner-trace2})
-
-
-
-
-
-

(declare xpand-form)

(defn xpand-all
  [form src-map fn-meta path path-chain]
  (when-not (nil? form)
    (util/back-into form
                    (doall (map-indexed #(xpand-form %2
                                                     src-map
                                                     fn-meta
                                                     (conj path %)
                                                     path-chain)
                                        form)))))

(defn get-form-meta-somehow

              (first form))
        (rest form)))

(defn xpand-fn-form
  [head form path-sym]
  `(tr-fn ~path-sym
          ~'$$
          ~(first form)
          ~@(rest form)))

(defn xpand-fn
  [head form src-map fn-meta path path-parent]
  (let [path-parent' (conj path-parent path)]
    {:template {path (mk-tree-template src-map
                                       (get-form-meta-somehow form)
                                       fn-meta
                                       path-parent')}
     :form (xpand-fn-form head
                          (xpand-all form
                                     src-map
                                     fn-meta
                                     path
                                     path-parent'))}))

#_(defn xpand-form
  [form src-map fn-meta & [path path-parent]]
  (let [path' (or path [])
        path-parent' (or path-parent [])
        args [form src-map fn-meta path' path-parent']]
    (cond
      (seq? form)
      (let [head (first form)]
