               (throw (IllegalStateException. "Arg literal must be %, %& or %integer"))
               (register-arg n))))))))
 
-(def ^:private ^:dynamic *unsafe-read* false)
-
 (defn read-eval
   [rdr _]
   (when-not *read-eval*
     (reader-error rdr "#= not allowed when *read-eval* is false"))
-  (when-not *unsafe-read*
-    (reader-error rdr "#= only allowed when using the unsafe- variants of read and read-string"))
   (let [o (read rdr true nil true)]
     (if (symbol? o)
       (RT/classForName (str ^Symbol o))


(defn read
  "Reads the first object from an IPushbackReader or a java.io.PushbackReader.
Returns the object read. If EOF, throws if eof-error? is true. Otherwise returns sentinel.
Safe, #= is not allowed"
  ([] (read *in*))
  ([reader] (read reader true nil))
  ([reader eof-error? sentinel] (read reader eof-error? sentinel false))

                           e)))))))

(defn read-string
  "Reads one object from the string s"
  [s]
  (read (string-push-back-reader s) true nil false))

