                             problems)]
     (->> (when (seq no-msgs)
            (printer/format
-            "should satisfy
-
-%s"
+            "should satisfy\n\n%s"
             (preds no-msgs)))
          (conj (keep (fn [{:keys [expound/via]}]
                        (let [last-spec (last via)]


(defmethod problem-group-str :problem/not-in-set [_type spec-name val path problems opts]
  (assert (apply = (map :val problems)) (str util/assert-message ": All values should be the same, but they are " problems))
  (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

       (string/join "\n")))

(defmethod problem-group-str :problem/missing-spec [_type spec-name val path problems opts]
  ;; TODO - fix when I figure out how to to format this consistent
  (printer/format
   "%s\n\n%s"
   (header-label "Missing spec")
   (expected-str _type spec-name val path problems opts)))

