   "Accepts any collection which satisfies the ICount and IIndexed protocols and
 reduces them without incurring seq initialization"
   ([cicoll f]
-     (if (= 0 (-count cicoll))
+     (if (zero? (-count cicoll))
        (f)
        (loop [val (-nth cicoll 0), n 1]
          (if (< n (-count cicoll))

  [re s]
  (let [matches (.exec re s)]
    (when (= (first matches) s)
      (if (= (count matches) 1)
        (first matches)
        (vec matches)))))


  (-hash [coll] (hash-coll coll)))

(defn prim-seq [prim i]
  (when-not (zero? (.-length prim))
    (IndexedSeq. prim i)))

(defn array-seq [array i]
