         (recur (rest fns) ((first fns) in o))))))
 
 (defn combine-proc-fns-vec
+  "Map a vector of processing functions, fn-vec, to a vector of combined functions.
+   The mapping definition fn-mapping, is a vector of integer values that define how many processing functions are combined in each combined function.
+   For a vector of processing functions [a b c d e f] a mapping definition [1 2 3] will result in the following association of processing rules to combined functions f_x: [f_1(a), f_2(b, c), f_3(d e f)]."
   [fn-mapping fn-vec]
   (reduce
     (fn [v m]

          (map eval fns))))))

(defn combine-proc-fns
  [fn-vec start-idx end-idx]
  (fn [in out]
    (loop [fns (subvec fn-vec start-idx end-idx) o out]

    [clojure.pprint :refer :all]))

(defn create-proc-fn-vec-from-template
  "Create a vector with n processing functions based on the two given \"template\" functions fn-1 and fn-n.
   fn-1 is the function that will be put as first function in the resulting vector.
   Subsequently, fn-n will be repeated n-1 times to fill the vector with n instances.
   All occurrences of :_idx_ in the supplied functions will be replaced with the numerical index value of the corresponding function in the resulting vector."
  [fn-1 fn-n n]
  (loop [fns (prewalk-replace {:_idx_ 0} [fn-1])]
    (if (< (count fns) n)
