      "\n\nor\n\n"
      (map #(expected-str2 % opts) grouped-subproblems))))
 
+;; TODO - namespace to expound
 (defmethod value-str :problem/value-group [type spec-name val path problems opts]
-  ;; TODO - assert singleton
+  (s/assert ::singleton problems)
   (let [problem (first problems)
         subproblems (:problems problem)
         {:keys [form in type]} (problem-parts (first subproblems) opts)]

           nil))))

;; TODO - maybe just return these values in an easy to destructure map
;; TODo - move to new namespace
(defn ^:private problem-parts [problem opts]
  (let [type (:expound.spec.problem/type problem)
        spec-name nil ;; TODO - fix

          (expected-str2 [problem] opts)))))))

(defmethod problem-group-str :problem/alt-group [_type spec-name val path problems opts]
  (s/assert ::singleton problems)
  (printer/format
   "%s\n\n%s"
   (header-label "Spec failed")
