(defn diff-by
"Returns a map of :added, :changed, :removed, and :same"
([aggregator existing updated] (diff-by aggregator = (fn [_ right] right) existing updated))
([aggregator comparator existing updated] (diff-by aggregator comparator (fn [_ right] right) existing updated))
([aggregator comparator changed-merger existing updated]))