(defn set
"Returns a set of the distinct elements of coll."
{:added "1.0"
:static true}
[coll]
(if (set? coll)
(with-meta coll nil)
(if (instance? clojure.lang.IReduceInit coll)
(persistent! (.reduce ^clojure.lang.IReduceInit coll conj! (transient #{})))
(persistent! (reduce1 conj! (transient #{}) coll)))))