                   (reset! new-line true))
                 (write
                   ([obj]
-                    (let [s (condp instance? obj
-                             java.lang.String obj
-                             java.lang.Integer (str (char obj))
-                             (str obj))
+                    (let [#^java.lang.String s (condp instance? obj
+                                                 java.lang.String obj
+                                                 java.lang.Integer (str (char obj))
+                                                 (str obj))
                           term-height (.getHeight term)]
                       (binding [*out* stdout]
                         (when @new-line

  [opts in-chan]
  (let [rdr-fn (create-repl-read-fn opts)]
    (fn [request-prompt request-exit]
      (let [line (async/<!! in-chan)]
        (if (and (not (nil? line))
                 (not (.isEmpty line))
                 (not (-> line (.trim) (.startsWith *comment-begin-string*))))

            (conj
              v
              (ArgumentCompleter.
                #^"[Ljline.console.completer.Completer;"
                (into-array
                  Completer
                  [(StringsCompleter. #^java.util.Collection (conj (mapv name (cmd-aliases k)) (name k)))
                   (proxy [Completer] []
                     (complete [buffer cursor #^java.util.List candidates]
                       (if (not (nil? fn-args))
                         (.add candidates (str "Arguments: " fn-args)))
                       (if (not (nil? completion-hint))
                         (.add candidates (str completion-hint)))
                       (if (not (and (not (nil? fn-args)) (not (nil? completion-hint))))
                         (.add candidates ""))
                       0))])))
            v)))
      []
      (keys cmds))))

(defn set-up-alternate-scrolling
  [height width alternate-height alternate-scroll-separator prompt-string #^ConsoleReader in-rdr]
  (let [prompt-width (count prompt-string)
        adjusted-prompt-string (str "\u001B[" (- height alternate-height) ";0H"
                                    "\u001B[2K"
