 
   ICounted
   (-count [rng]
-    (cond (nil? (-seq rng)) 0
-          (and (= start 0) (< start end) (= step 1)) (- end start)
-          :else (js/Math.ceil (/ (- end start) step))))
+    (if-not (-seq rng)
+      0
+      (js/Math.ceil (/ (- end start) step))))
 
   IIndexed
   (-nth [rng n]

  (-first [rng] start)

  (-rest [rng]
    (if-not (nil? (-seq rng))
      (Range. meta (+ start step) end step)
      (list)))


  ISeqable
  (-seq [rng]
    (let [comp (if (pos? step) < >)]
      (when (comp start end)
        rng)))

  IReduce
