 (defn start-reading-messages
   "Starts a thread reading inbound messages."
   [repl-env opts]
+  {:pre [(map? repl-env) (map? opts)]}
   (.start
     (Thread.
       #(try


(defn- mount-webdav
  [repl-env bonjour-name endpoint-address endpoint-port]
  (let [webdav-mount-point (str "/Volumes/Ambly-" (format "%08X" (hash bonjour-name)))
        output-dir (io/file webdav-mount-point)]
    (when (.exists output-dir)

  The canonical stacktrace must be a vector of maps of the form
  {:file <string> :function <string> :line <integer> :column <integer>}."
  [raw-stacktrace opts]
  {:pre  [string? (map? opts)]
   :post [(vector? %)]}
  (->> raw-stacktrace
    string/split-lines
    (map #(stack-line->canonical-frame % opts))
