          :default
          (recur options (conj extra-args (first args)) (rest args)))))))
 
-(defn ^:private switches-for
+(defn- switches-for
   [switches flag]
   (-> (for [^String s switches]
         (cond

                     (contains? switches arg))))
       first))

(defn ^:private default-values-for
  [specs]
  (into {} (for [s specs] [(s :name) (s :default)])))

(defn ^:private apply-specs
  [specs args]
  (loop [options    (default-values-for specs)
         extra-args []

         :default                        [s]))
      flatten))

(defn- generate-spec
  [raw-spec]
  (let [[switches raw-spec] (split-with #(and (string? %) (opt? %)) raw-spec)
        [docs raw-spec]     (split-with string? raw-spec)
