        (record-trace-tree ~'$$)
        ~'$return)))
 
-
-(def trace (atom nil))
+(defn xpand-bod
+  [fn-bod parent-fn-meta]
+  (cons (first fn-bod)
+        (map #(xpand % parent-fn-meta)
+             (rest fn-bod))))
+
+(defn xpand-fn*
+  [form parent-fn-meta]
+  (let [bods (->> form
+                  rest
+                  (map #(xpand-bod % parent-fn-meta)))]
+    (cons (first form)
+          bods)))
 
 (defn log->tree1
   [log src-map fn-meta]

(defn xpand-fn
  [head form path]
  (cons
   (list 'capture-fn path '$$ head)
   (rest form)))

(defn xpand-macro

                           :path' path
                           :parent-name (:name fn-meta)
                           :ns (-> fn-meta :ns str symbol)
                           :args (vec args)
                           :arg-map  (delay (zipmap (-> src-map
                                                        :xp
                                                        rest)
