   :NOT-IMPLEMENTED)
 
 (defn mk-tree-template
-  [src-map frm-meta fn-meta path-chain & {:keys [macro?]}]
-  (let [sub-src-map (util/$- -> path-chain
+  [src-map frm-meta fn-meta path-parent & {:keys [macro?]}]
+  (let [sub-src-map (util/$- -> path-parent
                              last
                              (remove #{:macro} $)
                              path->sym

              (first form))
        (rest form)))

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

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

        form (if macro?
               (:orig sub-src-map)
               (:x sub-src-map))]
    {:inner-path-parent path-parent
     :name (if (seq? form)
             (first form)
             form)
     :form form
     :macro? macro?
     :inner-path (last path-parent)
     :parent-name (symbol (format "%s/%s"
                                  (-> fn-meta :ns str)
                                  (:name fn-meta)))
