 
 (defn structify
   "Takes a sequence of row vectors, as commonly produced by csv parsing libraries, and returns a sequence of
-  structs. By default, the first row vector will be interpreted as a header, and used as the keys for the maps.
-  However, this and other behaviour are customizable via an optional `opts` map with the following options:
+  structs. By default, the first row vector will be interpreted as a header, and used as the keys for the structs.
+  However, this and other behaviors are customizable via an optional `opts` map with the following options:
 
   * `:keyify` - bool; specify whether header/column names should be turned into keywords (default: `true`).
   * `:header` - specify the header to use for map keys, preventing first row of data from being consumed as header."

            comment-re      #"^\#"}
     :as opts}]
   (let [map-fn (when mappify
                  (if structs
                    (semantic-csv.transducers/structify {:keyify keyify :header header})
                    (semantic-csv.transducers/mappify {:keyify keyify :header header}))) ;; use mappify or structify
         remove-fn (when remove-comments
                     (semantic-csv.transducers/remove-comments {:comment-re comment-re :comment-char comment-char}))
         cast-with-fn (when cast-fns
                        (semantic-csv.transducers/cast-with cast-fns {:exception-handler cast-exception-handler :only cast-only}))
         ]
     (apply comp (remove nil? [remove-fn map-fn cast-with-fn]))))
  ; Use all defaults
  ([]
   (process {})))

;; Using this function, the code we've been building above is reduced to the following:
;;

  * `:cast-exception-handler` - If cast-fn raises an exception, this function will be called with args
    `colname, value`, and the result used as the parse value.
  * `:cast-only` - Only cast the specified column(s); can be either a single column name, or a vector of them."
  ([] (process {}))
  ([{:keys [mappify keyify header remove-comments comment-re comment-char structs cast-fns cast-exception-handler cast-only]
     :or   {mappify         true
            keyify          true
