   (if arg-env
     (throw (IllegalStateException. "Nested #()s are not allowed")))
   (with-bindings {#'arg-env (sorted-map)}
-                 (unread rdr \()
-                 (let [form (read rdr true nil true) ;; this sets bindings
-                       rargs (rseq arg-env)
-                       args (if rargs
-                              (let [higharg (key (first rargs))]
-                                (if (pos? higharg)
-                                  (let [args (loop [i 1 args (transient [])]
-                                               (if (> i higharg)
-                                                 (persistent! args)
-                                                 (recur (inc i) (conj! args (or (get arg-env i)
-                                                                                (garg i))))))
-                                        args (if (arg-env -1)
-                                               (conj args '& (arg-env -1))
-                                               args)]
-                                    args)))
-                              [])]
-                   (list 'fn* args form))))
+    (unread rdr \()
+    (let [form (read rdr true nil true) ;; this sets bindings
+          rargs (rseq arg-env)
+          args (if rargs
+                 (let [higharg (key (first rargs))]
+                   (if (pos? higharg)
+                     (let [args (loop [i 1 args (transient [])]
+                                  (if (> i higharg)
+                                    (persistent! args)
+                                    (recur (inc i) (conj! args (or (get arg-env i)
+                                                                   (garg i))))))
+                           args (if (arg-env -1)
+                                  (conj args '& (arg-env -1))
+                                  args)]
+                       args)))
+                 [])]
+      (list 'fn* args form))))
 
 (defn register-arg [n]
   (if arg-env

     (StringReader. s (.length s) 0)))

(defn string-push-back-reader
  "Creates a StringPushbackReader from a given string"
  ([s]
     (string-push-back-reader s 1))
  ([^String s buf-len]

(defn read-syntax-quote
  [rdr backquote]
  (with-bindings {#'gensym-env {}}
    (-> (read rdr true nil true)
        syntax-quote)))

(defn macros [ch]
  (let [c (char ch)]
