   ([coll k]
      (-disjoin coll k))
   ([coll k & ks]
-     (let [ret (disj coll k)]
-       (if ks
-         (recur ret (first ks) (next ks))
-         ret))))
+    (when-not (nil? coll)
+      (let [ret (disj coll k)]
+        (if ks
+          (recur ret (first ks) (next ks))
+          ret)))))
 
 ;; Simple caching of string hashcode
 (def string-hash-cache (js-obj))

(defn empty
  "Returns an empty collection of the same category as coll, or nil"
  [coll]
  (-empty coll))

(defn- accumulating-seq-count [coll]
  (loop [s (seq coll) acc 0]


    (string? o)
    (check-string-hash-cache o)

    (nil? o) 0

    :else
    (-hash o)))
