 
 #_(pp)
 
+(defmethod error-help-message :failed-key-predicate [{:keys [key path not value type-sig] :as error}]
+  [:group "The key "
+   (format-key key :red)
+   " did not satisfy the key predicate. "
+   :line
+   "It should be a "
+    (color (explain-predicate-failure not value) :green)])
+
 (defmethod error-help-message :failed-predicate [{:keys [path not value type-sig] :as error}]
   (concat
    (if (parent-is-sequence? error)

                      :string "A String that describes a string"
                      :magical "How magical do you want to make this?"
                      :what    "Something what like is something goodness"
                      :boolean "A boolean that tells us whether bolleans are allowed"})
                (spec 'FigOpts
                      {:five 5
                       :boolean (ref-schema 'Boolean)
                       :other   (ref-schema 'OtherType)
                       :string   string?

                                      (str "^ key " (pr-str key) " not recognized")))
                   {:width 40}))

#_(pp)
(defmethod print-error :missing-required-key [{:keys [path value type-sig] :as error}]
  (pprint-document (print-path-error error
                                     [:group
