       r#)))
  
 (defn do-eval [txt session-key]
+  "Evaluate an expression sent to the web REPL and return the result
+  or an error description."
   (with-session session-key
     (let [form (binding [*read-eval* false] (read-string txt))]
       (with-open [writer (java.io.StringWriter.)]

       (commute repl-sessions assoc session-key (current-bindings)))))
  (@repl-sessions session-key))
 
(defn store-bindings-for [session-key]
  (dosync
    (commute repl-sessions assoc session-key (current-bindings))))
 

            *e nil]
    (get-thread-bindings)))
 
(defn- bindings-for [session-key]
  (when-not (@repl-sessions session-key)
    (binding [*ns* *ns*]
      (in-ns 'afterglow.examples)
