 
 #_ (get-tags' {:id 1} {:a #(-> % :id #{1}) :b #(-> % :id #{1})})
 
+(defn insert-tags-into-parent-tag-summary
+  [& [tags summary]]
+  {:path (if tags
+           (-<> summary
+                :path
+                (or [])
+                (into [tags]
+                      <>))
+           [])
+   :set (if tags
+          (-> summary
+              :set
+              (or #{})
+              (conj tags))
+          #{})})
+
 (defn merge-children-tag-summary
   [& rest]
   {:paths (->> rest


(defn insert-tag-into-children-tag-summary
  [tag ch-tags]
  {:paths (->> ch-tags
               :paths
               (mapv #(into [tag] %)))
   :set (-> ch-tags
            :set
            (conj tag))})

(defn get-children-tag-summary*


(def ^:dynamic *get-tags-mz* nil)

(defn right-sib-zips [z]
  (if-let [r (z/right z)]
    (lazy-cat [r]
              (right-sib-zips r))
    []))

(defn children-zips [z]
  (if-let [d (z/down z)]
    (lazy-cat [d]
              (right-sib-zips d))
    []))



(defn set-zip-children
  [z c]
