           (map eval fns))))))
 
 (defn combine-proc-fns
+  "Based on the given vector of processing functions, combine the functions starting at start-idx, inclusive, up to end-idx, non inclusive, into a single combined function."
   [fn-vec start-idx end-idx]
   (fn [in out]
     (loop [fns (subvec fn-vec start-idx end-idx) o out]

        (recur (rest fns) ((first fns) in o))))))

(defn combine-proc-fns-vec
  [fn-mapping fn-vec]
  (reduce
    (fn [v m]

    (rest fn-mapping)))

(defn calculate-distribution-mapping
  "Based on an input sequence, in-seq, and a vector of ratios, calculate a mapping such that the input sequence will be distributed according to the given ratios.
   The resulting mapping can be used, e.g., with combine-proc-fns-vec."
  ([in-seq ratios]
    (calculate-distribution-mapping in-seq ratios {}))
  ([in-seq ratios opts]
