   ([e base-path key-message-map]
    (pprint-in-context e base-path key-message-map {}))
   ([e base-path key-message-map colors]
-   (if (::file-source e)
-     (pprint-in-file (::file-source e) base-path key-message-map)
+   (or (and
+        (::file-source e)
+        (pprint-in-file (::file-source e) base-path key-message-map))
      (pprint-sparse-path (::root-data e) base-path key-message-map colors))))
 
 ;; *** pprint inline message

;; but the scores of the top choices should be close and in order 

(defmethod error-message ::wrong-key [{:keys [path pred val reason via in] :as e}]
  (str "The key " (color (::wrong-key e) :error-key)
       " is unrecognized. Perhaps you meant "
       (color (::correct-key e) :correct-key)
       "?"))

;; we probably should move ::correct-key to ::correct-keys

(defmethod error-message ::misspelled-key [{:keys [path pred val reason via in] :as e}]
  (str "  The key " (color (::misspelled-key e) :error-key)
       " is misspelled. It should probably be "
       (color (::correct-key e) :correct-key)))

