   (let [{:keys [ky] :as p} (docs-for parent-type k)]
     (if ky
       [:group
-       "Doc for key " (color (pr-str k) :bold) 
+       "-- Docs for key " (color (pr-str k) :bold) " --" 
        :break
-       [:nest 2 (color ky
-                       :underline)]
+       (color ky
+                       :underline)
        :break]
       "")))
 


(defn find-keyword-predicate [parent-type]
  (when-let [[pred-id _ [pt _ kt]] (first (*schema-rules* [:parent :?- parent-type]))]
    (when-let [pred-func (last (first (*schema-rules* [:k= pred-id])))]
      [pred-func kt])))

;; this is what implements or

(defmethod predicate-explain integer? [_ value] "Integer")
(defmethod predicate-explain string? [_ value] "String")
(defmethod predicate-explain symbol? [_ value] "Symbol")
(defmethod predicate-explain number? [_ value] "Number")

(defmethod predicate-explain string-or-symbol? [_ value] "String or Symbol")

(defmethod predicate-explain keyword? [_ value] "Keyword")

(defmethod predicate-explain named? [_ value] "String, Keyword, or Symbol")
