List
(List. meta first rest count __hash)
(deftype List [meta first rest count ^:mutable __hash]
Object
(toString [coll]
(pr-str* coll))
(equiv [this other]
(-equiv this other))
(indexOf [coll x]
(-indexOf coll x 0))
(indexOf [coll x start]
(-indexOf coll x start))
(lastIndexOf [coll x]
(-lastIndexOf coll x count))
(lastIndexOf [coll x start]
(-lastIndexOf coll x start))
IList
ICloneable
(-clone [_] (List. meta first rest count __hash))
IWithMeta
(-with-meta [coll new-meta]
(if (identical? new-meta meta)
coll
(List. new-meta first rest count __hash)))
IMeta
(-meta [coll] meta)
ASeq
ISeq
(-first [coll] first)
(-rest [coll]
(if (== count 1)
()
rest))
INext
(-next [coll]
(if (== count 1)
nil
rest))
IStack
(-peek [coll] first)
(-pop [coll] (-rest coll))
ICollection
(-conj [coll o] (List. meta o coll (inc count) nil))
IEmptyableCollection
(-empty [coll] (-with-meta (.-EMPTY List) meta))
ISequential
IEquiv
(-equiv [coll other] (equiv-sequential coll other))
IHash
(-hash [coll] (caching-hash coll hash-ordered-coll __hash))
ISeqable
(-seq [coll] coll)
ICounted
(-count [coll] count)
IReduce
(-reduce [coll f] (seq-reduce f coll))
(-reduce [coll f start] (seq-reduce f start coll)))