        "")
      (let [failure nil
            non-matching-value [:expound/value-that-should-never-match]
-           problems1 (grouped-problems1 (annotate-1*
-                                         failure
-                                         (map #(dissoc % :reason)
-                                              (map
-                                               #(dissoc % :expound.spec.problem/type)
-                                               problems))))]
-       (apply str (for [prob problems1]
+           problems (groups (annotate-1*
+                             failure
+                             (map #(dissoc % :reason)
+                                  (map
+                                   #(dissoc % :expound.spec.problem/type)
+                                   problems))))]
+       (apply str (for [prob problems]
                     (let [in (-> prob :expound/in)]
                       (expected-str (-> prob :expound.spec.problem/type) :expound/no-spec-name non-matching-value in [prob] opts))))))))
 

          ;; TODO - grab everything with let binding
          caller (:expound/caller explain-data')
          form (:expound/form explain-data')
          problems1 (->> explain-data'
                         :expound/problems
                         grouped-problems1
                         (safe-sort-by :expound/in paths/compare-paths))]

      (printer/no-trailing-whitespace
       (str

  (walk/postwalk
   (fn [form]
     (if (and (map? form)
              (= :problem/value-group (:expound.spec.problem/type form))
              (= 1 (count (:problems form))))
       (first (:problems form))
       form))
   groups))

(defn ^:private groups [problems]
  (let [grouped-by-in-path (->> problems
                                (group-by :expound/in)
                                vals
                                (map (fn [grp]
                                       (if (= 1 (count grp))
                                         {:expound.spec.problem/type :problem/value-group
                                          :path-prefix               (:expound/path (first grp))
                                          :problems                  grp}
                                         {:expound.spec.problem/type :problem/value-group
                                          :path-prefix               (apply lcs1 (map :expound/path grp))
                                          :problems                  grp}))))]

    (->> grouped-by-in-path
         (reduce
