 
 (defn sym-seq->parent
   [syms]
-  (-> syms
-      first
-      sym->path
-      drop-last
-      path->sym))
+  (util/$- -> syms
+           first
+           (if (coll? $)
+             (sym-seq->parent $)
+             $)
+           sym->path
+           drop-last
+           path->sym))
 
 (defn swap-in-path-syms*
   [form func parent path skip-macro?]

          xx (clojure.walk/macroexpand-all form)] ;; TODO better way?
      (conj (mapcat form->xform-map* x)
            {form xx}))
    [[form form]]))

(defn form->xform-map
  [form]

;;  xl->xp (deep-zipmap (-> src clojure.walk/macroexpand-all swap-in-path-syms) (clojure.walk/macroexpand-all src))
;;  olop->op (deep-zipmap (swap-in-path-syms src) src)

(defn mk-expr
  -mapping
  [form]
  (let [xls (->> form
                 clojure.walk/macroexpand-all
