               (reset-meta! o m)))
           (reader-error rdr "Metadata can only be applied to IMetas"))))))
 
-(defrecord SyntaxQuotedSet [val])
 (defn- read-set
   [rdr _]
   (let [[start-line start-column] (when (indexing-reader? rdr)
                                     [(get-line-number rdr) (int (dec (get-column-number rdr)))])
-        the-set (if gensym-env
-                  (SyntaxQuotedSet. (read-delimited \} rdr true))
-                  (PersistentHashSet/createWithCheck (read-delimited \} rdr true)))
+        the-set (PersistentHashSet/createWithCheck (read-delimited \} rdr true))
         [end-line end-column] (when (indexing-reader? rdr)
                                 [(get-line-number rdr) (int (get-column-number rdr))])]
     (with-meta the-set

        map-count (count the-map)
        [end-line end-column] (when (indexing-reader? rdr)
                                [(get-line-number rdr) (int (get-column-number rdr))])]
    (when (and (odd? map-count)
               (or (not gensym-env)
                   (not-any? #(= 'clojure.core/unquote-splicing (first %))
                           (filter seq? the-map))))
      (reader-error rdr "Map literal must contain an even number of forms"))
    (with-meta
      (if (zero? map-count)
        {}
        (if gensym-env
          (SyntaxQuotedMap. the-map)
          (RT/map (to-array the-map))))
      (when start-line
        (merge
         (when-let [file (get-file-name rdr)]


    (coll? form)
    (cond

     (instance? IRecord form) form
     (map? form) (syntax-quote-coll (map-func form) (flatten-map form))
     (vector? form) (list 'clojure.core/vec (syntax-quote-coll nil form))
     (set? form) (syntax-quote-coll 'clojure.core/hash-set form)
     (or (seq? form) (list? form))
     (let [seq (seq form)]
       (if seq
