        :matches
        {:$setIntersection
         (map
-         (fn [label]
-           (str "$" label "." label))
+         (comp
+          (fn [label]
+            (str "$" label "." label))
+          name)
          labels)}}}
      {:$unwind "$_root"}
      {:$redact

  [{:$project
    (reduce
     (fn [project label]
       (assoc project label (str "$_history." label)))
     {} labels)}])

(defn limit

  [{:$project
    (reduce
     (fn [project value]
       (assoc project value (dollar value)))
     {} values)}])

(defn mark
