   ICollection
   (-conj [coll o] (cons o coll))
 
+  IEmptyableCollection
+  (-empty [coll] cljs.core.List/EMPTY)
+
   IReduce
   (-reduce [coll f]
     (if (counted? a)

    ([array f start]
       (ci-reduce array f start))))

(deftype RSeq [ci i meta]
  Object
  (toString [this]

  ICollection
  (-conj [this o]
    (cons o this))

  IEmptyableCollection
  (-empty [coll] (with-meta cljs.core.List/EMPTY meta))

  IHash
  (-hash [coll] (caching-hash coll hash-coll __hash)))
