 
 (defrecord AtomDiff [a b]
   Report
-  (report [_] (str "expected: " (pr-str a) ", was " (pr-str b))))
+  (report [_] (str "expected " (pr-str a) ", was " (pr-str b))))
 
 (defn diff-atom
   [a b]


(defn report-sequential-count-diff
  [excess-idx only-in-a only-in-b]
  [(str "expected length of sequence " (+ excess-idx (count only-in-a))
        ", was " (+ excess-idx (count only-in-b)) ".")
   (if (seq only-in-a)
     (str "Excess in expected: " (pr-str only-in-a))
     (str "Excess in actual: " (pr-str only-in-b)))])

(defrecord SequentialSizeDiff [excess-idx only-in-a only-in-b]
  Report


(defn generate-report-for-keyed-diff
  [[path diffs]]
  (let [reports (flatten (map report diffs))
        indent-reports? (and (seq path) (< 1 (count reports)))]
    (-> reports
        (cond->> indent-reports? (map #(str "  " %)))
        join-with-newlines
        (cond->> (seq path) (str "in " (pr-str path) (if indent-reports? "\n" " "))))))

(defn generate-reports
  [diffs]
