 
 ;;;;;; public ;;;;;;
 
-(defn custom-printer [opts]
+(defn custom-printer
+  "Returns a printer, configured via opts"
+  [opts]
   (fn [explain-data]
     (print (printer-str opts explain-data))))
 
-;; TODO - write docstrings
-(defn printer [explain-data]
+(defn printer
+  "Prints explain-data in a human-readable format"
+  [explain-data]
   ((custom-printer {}) explain-data))
 
 (defn expound-str
-  "Given a spec and a value that fails to conform, returns a human-readable explanation as a string."
+  "Given a spec and a value, either returns success message or returns a human-readable explanation as a string."
   [spec form]
   ;; expound was initially released with support
   ;; for CLJS 1.9.542 which did not include

                          ::s/value form)
                   nil))))

(defn expound [spec form]
  (print (expound-str spec form)))

    ;;highlighted-line
    (no-trailing-whitespace (string/replace s line highlighted-line))))

(defn value-in-context
  "Given a form and a path into that form, returns a string
   that helps the user understand where that path is located
