 (defn ^:private alt-group [grp1 grp2]
   {:expound.spec.problem/type :expound.problem/alt-group
    :path-prefix               (lcs1 (:path-prefix grp1)
-                      (:path-prefix grp2))
+                                    (:path-prefix grp2))
    :problems                  (into
-              (if (= :expound.problem/alt-group (:expound.spec.problem/type grp1))
-                (:problems grp1)
-                [grp1])
-
-              (if (= :expound.problem/alt-group (:expound.spec.problem/type grp2))
-                (:problems grp2)
-                [grp2]))})
+                               (if (= :expound.problem/alt-group (:expound.spec.problem/type grp1))
+                                 (:problems grp1)
+                                 [grp1])
+
+                               (if (= :expound.problem/alt-group (:expound.spec.problem/type grp2))
+                                 (:problems grp2)
+                                 [grp2]))})
 
 (defn ^:private lift-singleton-groups [groups]
   (walk/postwalk

(defmulti ^:no-doc expected-str (fn [type  spec-name _val _path _problems _opts] type))
(defmulti ^:no-doc value-str (fn [type  spec-name _val _path _problems _opts] type))

(defmethod value-str :default [_type spec-name val path problems opts]
  (show-spec-name spec-name (printer/indent (*value-str-fn* spec-name val path (problems/value-in val path)))))



;; TODO - try a few different names here
(defmethod problem-group-str :expound.problem/value-group [type spec-name val path problems opts]
  (s/assert ::singleton problems)
  (let [problem (first problems)
        subproblems (:problems problem)
        {:expound/keys [form in]} (first subproblems)]
    (format-err (-> subproblems first :expound.spec.problem/type header)
                type
                spec-name
