      :arguments   A vector of unprocessed arguments
      :summary     A string containing a minimal options summary
      :errors      A possible vector of error message strings generated during
-                  parsing; nil when no errors exist
-     }
+                  parsing; nil when no errors exist}
 
   A few function options may be specified to influence the behavior of
   parse-opts:

        vs (for [d docs]
             (mapcat (fn [& x] (apply vector x)) max-cols d))]
    (doseq [v vs]
      (cl-format true "~{ ~vA  ~vA  ~vA ~}" v)
      (prn))))

(defn- name-for [k]
  (replace k #"^--no-|^--\[no-\]|^--|^-" ""))

(defn- flag-for [^String v]
  (not (.startsWith v "--no-")))

                   :default 0
                   :assoc-fn (fn [m k _] (update-in m [k] inc))]

    :validate     A vector of [validate-fn validate-msg]; the validation
                  message is optional.

    :validate-fn  A function that receives the parsed option value and returns
                  a falsy value when the value is invalid.
