 
 
 (defn split-body
+  "Separate a the `:body` string in the given statement map into an input
+  `:form` and `:expected` value (if present). If the body doesn't begin with
+  the prompt string `=>`, it is returned unchanged."
   [statement]
   (let [body (:body statement)]
     (if (str/starts-with? (first body) "=> ")



(defn read-form
  [statement]
  (if (:form statement)
    (update statement :form #(binding [*default-data-reader-fn* tagged-literal]



(defn try-eval
  "Attempt to evaluate the given form and use the expected output string and
  any post comments to judge the result. Reports `clojure.test` assertion
  results and returns a vector containing the result and error values, if any."
  [history form expected post]
  (let [err-class (some->> (first post)
                           (re-seq #"^; (\S*Exception) ")
