   environment frames."
   (frames [this]))
 
+;;; We need the `->Env` constructor for creating new environments in
+;;; `conj`.
 (declare ->Env)
 
 #+clj

  machine."
  (:require #+cljs [cljs.reader :as reader]
            ;; Maybe use clojure.core/read-string for Clojure?
            #+clj [clojure.edn :as reader]
            #+clj [clojure.pprint :as pprint]))



  [& msg]
  (throw (#+clj java.lang.Exception. #+cljs js/Error.
                (apply str msg))))

(def ^:dynamic *print-warnings*
  "If `*print-warnings*` is truthy, warning messages are printed to
