 %s"
    (header-label "Spec failed")
    (show-spec-name spec-name (printer/indent (*value-str-fn* spec-name val path (problems/value-in val path))))
-   (explain-missing-keys problems)))
+   (expected-str _type spec-name val path problems opts)))
+
+(defmethod expected-str :problem/not-in-set [_type spec-name val path problems opts]
+  (let [combined-set (apply set/union (map :pred problems))]
+    (printer/format
+     "should be%s: %s"
+     (if (= 1 (count combined-set)) "" " one of")
+     (string/join "," (map #(str "`" % "`") combined-set)))))
 
 (defmethod problem-group-str :problem/not-in-set [_type spec-name val path problems opts]
   (assert (apply = (map :val problems)) (str "All values should be the same, but they are " problems))
-  (let [combined-set (apply set/union (map :pred problems))]
-    (printer/format
-     "%s
-
-%s
-
-should be%s: %s"
-     (header-label "Spec failed")
-     (show-spec-name spec-name (printer/indent (*value-str-fn* spec-name val path (problems/value-in val path))))
-     (if (= 1 (count combined-set)) "" " one of")
-     (string/join "," (map #(str "`" % "`") combined-set)))))
+  (printer/format
+   "%s
+
+%s
+
+%s"
+   (header-label "Spec failed")
+   (show-spec-name spec-name (printer/indent (*value-str-fn* spec-name val path (problems/value-in val path))))
+   (expected-str _type spec-name val path problems opts)))
+
+(defmethod expected-str :problem/missing-spec [_type spec-name val path problems opts]
+  (->> problems
+        (map #(no-method spec-name val path %))
+        (string/join "\n"))
+  )
 
 (defmethod problem-group-str :problem/missing-spec [_type spec-name val path problems opts]
   (printer/format

           (str "\n\n" table)
           nil))))

(defmethod problem-group-str :problem/missing-key [_type spec-name val path problems opts]
  (assert (apply = (map :val problems)) (str "All values should be the same, but they are " problems))
  (printer/format


%s"
   (header-label "Missing spec")
   (expected-str _type spec-name val path problems opts)))

(defmethod problem-group-str :problem/regex-failure [_type spec-name val path problems opts]
  (s/assert ::singleton problems)
