   (let []
     `(let [~'__options (atom nil)
            ~'__alt-scroll-wrtr (atom nil)]
+       (windows-workaround)
        (reset! ~'__options (assoc
                              (get-cli-opts (add-args-info-m ~user-options))
                              :calling-ns ~*ns*))

  [& body]
  `(wrap-alt-scroll-writer ~'__alt-scroll-wrtr ~'__options ~@body))

(defmacro start-cli
  "This is the primary entry point for starting and configuring cli4clj.
   Please note that the configuration options can also be defined in a global or local var.

    (clojure.core [async :as async]))
  (:import
    (java.io PushbackReader StringReader)
    (jline TerminalFactory TerminalFactory$Flavor UnsupportedTerminal)
    (jline.console ConsoleReader)
    (jline.console.completer ArgumentCompleter Completer StringsCompleter)
    (jline.console.history FileHistory)))
