   ([f coll] (reductions f (f) coll))
   ([f init coll]
      (let [sentinel (Object.)]
-       (->> (r/mapcat identity [coll [sentinel]])
+       (->> (concat coll [sentinel])
             (tr/map-state (fn [acc x]
                             (if (identical? sentinel x)
                               [nil acc]

(ns parkour.reducers
  (:refer-clojure :exclude [map-indexed reductions distinct count first keep])
  (:require [clojure.core.reducers :as r]
            [clojure.core.protocols :as ccp]
            [transduce.reducers :as tr]
            [parkour.util :refer [returning]])
  (:import [java.util Random]))

(defn map-indexed
  "Reducers version of `map-indexed`."

     (fn
       ([o] (apply f o x y more))
       ([o z] (apply f o x y z more))
       ([o z & args] (apply f o x y z (cc/concat more args))))))

(defn mjuxt
  "Return a function which calls each function in `fs` on the
