(* emit_csv.mli *) (** One row per day, RFC 4180. Consumes the VIEW, not the kernel, so every emitter describes exactly the same fields as every template. *) (** RFC 4180 section 2: quote a field containing a comma, a quote or a newline; double an embedded quote. Exposed for testing. *) val escape_field : string -> string (** The header is [rite]-dependent (read from [v] itself, its own "rite" key): EF's 16 columns are unchanged from before this field existed; any other rite (OF) gets a 17th, "second", between "first" and "gospel" -- see emit_csv.ml's own [columns] for the full argument. *) val year : Template.value -> string