                        init))]
           (if (reduced? init)
             @init
-            (recur (+ i len) len init)))
+            (recur (+ i len) init)))
         init)))
 
   IKVReduce
   (-kv-reduce [v f init]
-    (loop [i 0 step 0 init init]
+    (loop [i 0 init init]
       (if (< i cnt)
         (let [arr  (unchecked-array-for v i)
               len  (alength arr)


  IReduce
  (-reduce [v f]
    (-reduce v f (f)))
  (-reduce [v f init]
    (loop [i 0 step 0 init init]
      (if (< i cnt)
        (let [arr  (unchecked-array-for v i)
              len  (alength arr)

                       init))]
          (if (reduced? init)
            @init
            (recur (+ i len) init)))
        init)))

  IFn
