                     (map-indexed (fn [i [a b]] (when (not= a b) [i (diff a b)])))
                     (remove nil?)
                     (into {}))))
-
 
 ;; String
 

  (clojure.string/join
   " "
   (-> []
       (cond-> (seq only-in-a) (conj (str "expected to contain: " (pr-str (flatten-when-single only-in-a)) ", but not found.")))
       (cond-> (seq only-in-b) (conj (str "contained: " (pr-str (flatten-when-single only-in-b)) ", but not expected"))))))


(defrecord SetDiff [only-in-a only-in-b]
  Report

    (when-not (empty? diffs)
      (MapDiffs. (set diffs)))))

;; Vector

(defn report-vector
