Symbol
(Symbol. ns name str _hash _meta)
(deftype Symbol [ns name str ^:mutable _hash _meta]
Object
(toString [_] str)
(equiv [this other] (-equiv this other))
IEquiv
(-equiv [_ other]
(if (instance? Symbol other)
(identical? str (.-str other))
false))
IFn
(-invoke [sym coll]
(get coll sym))
(-invoke [sym coll not-found]
(get coll sym not-found))
IMeta
(-meta [_] _meta)
IWithMeta
(-with-meta [_ new-meta] (Symbol. ns name str _hash new-meta))
IHash
(-hash [sym]
(caching-hash sym hash-symbol _hash))
INamed
(-name [_] name)
(-namespace [_] ns)
IPrintWithWriter
(-pr-writer [o writer _] (-write writer str)))