   embedded REPL (in a JScrollPane) and the corresponding output
   thread."
   [frame]
-  (let [[repl-container repl-thread output-thread] (make-clojure-repl frame),
+  (let [[repl-container, ^Thread repl-thread, ^Thread output-thread] (make-clojure-repl frame),
         rpl (into-text-area repl-container repl-thread)]
     (doto rpl
       (.setFont (Font. "Monospaced" Font/PLAIN 16))

(defn get-repl-thread
  "Returns for a given frame its corresponding repl-thread, if existent."
  [frame]
  (let [repl-container (get-component frame
                                      (fn [thing]
                                        (and (= (class thing) JTextArea)
                                             (implements-interface? (class (.getDocument thing))
                                                                    conexp.contrib.gui.repl.ReplProcess))))]
    (when repl-container
      (.. repl-container getDocument getReplThreadMap))))


                                      (in-ns 'user)
                                      (use 'conexp.main)
                                      (require '[conexp.contrib.gui.repl-utils :as gui]))
                              :caught (fn [^Throwable e]
                                        (if *print-stack-trace-on-error*
                                          (.printStackTrace e ^PrintStream *out*)
                                          (prn (clojure.main/repl-exception e)))
                                        (when (eof-ex? e)
                                          (throw e))
