            (throw e)
            (throw (ex-info (.getMessage e)
                            (merge {:type :reader-exception}
-                                  (if (instance? clojure.tools.reader.IndexingReader reader)
+                                  (if (indexing-reader? reader)
                                     {:line (get-line-number reader)
                                      :column (get-column-number reader)}))
                            e)))))))


(defn read-meta
  [rdr _]
  (let [[line column] (when (instance? clojure.tools.reader.IndexingReader rdr)
                        [(get-line-number rdr) (dec (get-column-number rdr))])
        m (desugar-meta (read rdr true nil true))]
    (when-not (map? m)


(defn read-list
  [rdr _]
  (let [[line column] (when (indexing-reader? rdr)
                        [(get-line-number rdr) (dec (get-column-number rdr))])
        the-list (read-delimited-list \) rdr true)]
    (if (empty? the-list)
