 
 #_ (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


(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]


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

(defn get-children-tag-summary*
