                 (and
                  (s/get-spec last-via)
                  (= pred (s/form (s/get-spec last-via)))) last-via)
-           non-matching-value #_:expound/value-that-should-never-match
-
-           [:expound/value-that-should-never-match]]
-       ;; TODO - convert back to if/then
-       (cond
-         (and (not (symbol? pred))
-              sp)
+           non-matching-value [:expound/value-that-should-never-match]]
+       (if
+        (and (not (symbol? pred))
+             sp)
          (let [explain-data (s/explain-data sp  non-matching-value)
                new-problems (sorted-and-grouped-problems (problems/annotate explain-data))]
            (apply str
                   (for [[[in type] problems'] new-problems]
                     (expected-str type :expound/no-spec-name non-matching-value in problems' opts))))
 
-         :else
          (let [ptype (problem-type nil (dissoc problem :reason))
                new-problems (map #(dissoc % :reason) problems)]
            (apply str

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

;; TODO - reorder to avoid this
(declare sorted-and-grouped-problems)
(declare problem-type)

(defmethod expected-str :problem/insufficient-input [_type spec-name val path problems opts]
  (s/assert ::singleton problems)

   (problem-group-str type spec-name val path problems opts)
   "\n\n"
   (if (:print-specs? opts) (relevant-specs problems) "")))

(defn instrumentation-info [failure caller]
  ;; As of version 1.9.562, Clojurescript does
