(* 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 val year : Template.value -> string