         (let [expected-clojurescript-version (cljs.util/clojurescript-version)
               actual-clojurescript-version (:value (jsc-eval repl-env "cljs.core._STAR_clojurescript_version_STAR_"))]
           (when-not (= expected-clojurescript-version actual-clojurescript-version)
-            ((println-fn opts)
+            (repl-println opts
               (str "WARNING: " (bonjour-name->display-name bonjour-name)
                 "\n         is running ClojureScript " actual-clojurescript-version
                 ", while the Ambly REPL is\n         set up to use ClojureScript "

          output-dir (io/file webdav-mount-point)
          env (ana/empty-env)
          core (io/resource "cljs/core.cljs")]
      ((println-fn opts) "\nConnecting to" (bonjour-name->display-name bonjour-name) "...\n")
      (set-up-socket repl-env opts endpoint-address (dec endpoint-port))
      (if (= "true" (:value (jsc-eval repl-env "typeof cljs === 'undefined'")))
        (do

(defn print-discovered-devices [name-endpoint-map opts]
  {:pre [(map? name-endpoint-map) (map? opts)]}
  (if (empty? name-endpoint-map)
    (repl-println opts "(No devices)")
    (doseq [[choice-number [bonjour-name _]] (name-endpoint-map->choice-list name-endpoint-map)]
      (repl-println opts (str "[" choice-number "] " (bonjour-name->display-name bonjour-name))))))

(defn discover-and-choose-device
  "Looks for Ambly WebDAV devices advertised via Bonjour and presents
