    The input that is read is then forwarded to a repl read function that was created with create-repl-read-fn."
   [opts]
   (let [cmds (opts :cmds)
-        err-fn (opts :print-err)
         entry-message (opts :entry-message)
         prompt-string (opts :prompt-string)
         in-rdr (doto (ConsoleReader. nil *jline-input-stream* *jline-output-stream* nil)

(defn cli-repl-print
  "The default repl print function of cli4clj only prints non-nil values."
  [arg]
  (if (not (nil? arg))
    (prn arg)))

(defn get-cmd-aliases

                  [(StringsCompleter. #^java.util.Collection (conj (mapv name (cmd-aliases k)) (name k)))
                   (proxy [Completer] []
                     (complete [buffer cursor #^java.util.List candidates]
                       (when (not (nil? fn-args))
                         (.add candidates (str "Arguments: " fn-args)))
                       (when (not (nil? completion-hint))
                         (.add candidates (str completion-hint)))
                       (when (not (and (not (nil? fn-args)) (not (nil? completion-hint))))
                         (.add candidates ""))
                       0))])))
            v)))
