csvable will be represented as a column, and its label is the field name of a containing record.
Fields.fold friendly version of a function to collect the csv header of the
csvable type. The output is the header in reverse order.
val t_of_row' : _ -> string list -> ( unit -> t ) * string list
t_of_row' _ row generates a
Fields.make_creator friendly function that outputs a pair
(creator, tail) such that
creator () generates the type
t with the first elements in
tail is the remaining set of elements from
row that where not used in the creation of
val write_row_of_t' : is_first:bool -> is_last:bool -> writer:( string -> unit ) -> _ -> _ -> t -> unit
row_of_t' has the same arguments as
Helper.write. The ignored arguments are used to make it