 ;; ## process
 
 (defn process
-  "This function wraps together the most frequently used input processing capabilities,
-  controlled by an `opts` hash with opinionated defaults:
+  "Returns a transducers that composes the most frequently used input processing capabilities,
+  and is controlled by an `opts` hash with opinionated defaults:
 
   * `:mappify` - bool; transform rows from vectors into maps using `mappify`.
   * `:keyify` - bool; specify whether header/column names should be turned into keywords (default: `true`).

;; ## cast-with

(defn cast-with
  "Casts the vals of each row according to `cast-fns`, which must either be a map of
  `column-name -> casting-fn` or a single casting function to be applied towards all columns.
  Additionally, an `opts` map can be used to specify:

  * `:except-first` - Leaves the first row unaltered; useful for preserving header row.
  * `:exception-handler` - If cast-fn raises an exception, this function will be called with args

;; ## vectorize

(defn vectorize
  "Returns a transducer that transforms maps where the keys are headers (as produced by mappify)
  and transforms them into a sequence of vectors. Options include:

  * `:header` - The header to be used. If not specified, this defaults to `(-> rows first keys)`. Only
    values corresponding to the specified header will be included in the output, and will be included in the
