           (implements? ISeq coll))
     (Cons. nil x coll nil)
     (Cons. nil x (seq coll) nil)))
-
-(defn ^boolean list?
-  "Returns true if x implements IList"
-  [x]
-  (satisfies? IList x))
 
 (defn hash-keyword [k]
   (int (+ (hash-symbol k) 0x9e3779b9)))

  (-reduce [coll f] (seq-reduce f coll))
  (-reduce [coll f start] (seq-reduce f start coll)))

(es6-iterable List)

(deftype EmptyList [meta]


  ISequential
  IEquiv
  (-equiv [coll other]
    (if (or (list? other)
            (sequential? other))
      (nil? (seq other))
      false))

  IHash
  (-hash [coll] empty-ordered-hash)
