                    (remove list?))
           xloc->oloc (deep-zipmap (-> src clojure.walk/macroexpand-all swap-in-path-syms)
                                   (-> src swap-in-path-syms clojure.walk/macroexpand-all))
+          oloc->xloc (clojure.set/map-invert xloc->oloc)
           xl->src  (deep-zipmap (-> src clojure.walk/macroexpand-all swap-in-path-syms)
                                 (clojure.walk/macroexpand-all src))
           ol->olop (-> src

       (zipmap (tree-seq coll? seq a)
               (tree-seq coll? seq b)))


(defn get-path->form-maps
  [src]

                   :olxp (-> xl
                             xloc->oloc
                             ol->olxp)
                   :xlop (-> xl
                             xloc->oloc
                             ol->olop
                             ((partial deep-replace-symbols oloc->xloc)))}})]
      (apply merge (map f #spy/d xls))))

  (clojure.pprint/pprint (mk-expr-mapping '(-> a b))))
