(defn
count
"Returns the number of items in the collection. (count nil) returns\n 0. Also works on strings, arrays, and Maps"
[coll]
(if-not
(nil? coll)
(cond
(implements? ICounted coll)
(-count coll)
(array? coll)
(alength coll)
(string? coll)
(.-length coll)
(implements? ISeqable coll)
(accumulating-seq-count coll)
:else
(-count coll))
0))