module Whitespace : sig ... endWhitespace.t specifies how to handle header values. It is used in two contexts:
module Name : sig ... endmodule Value : sig ... endinclude sig ... endval hash_fold_t : Ppx_hash_lib.Std.Hash.state ‑> t ‑> Ppx_hash_lib.Std.Hash.stateval hash : t ‑> Ppx_hash_lib.Std.Hash.hash_valueval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int ‑> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writerval bin_shape_t : Bin_prot.Shape.tval t_of_sexp : Sexplib.Sexp.t ‑> tval sexp_of_t : t ‑> Sexplib.Sexp.tval to_string : t ‑> stringval hash : t ‑> intval empty : tval of_list : whitespace:Whitespace.t ‑> (Name.t * Value.t) list ‑> tval to_list : ?whitespace:Whitespace.t ‑> t ‑> (Name.t * Value.t) listval last : ?whitespace:Whitespace.t ‑> t ‑> Name.t ‑> Value.t optionval find_all : ?whitespace:Whitespace.t ‑> t ‑> Name.t ‑> Value.t listval add : ?whitespace:Whitespace.t ‑> t ‑> name:Name.t ‑> value:Value.t ‑> tval add_all : ?whitespace:Whitespace.t ‑> t ‑> (Name.t * Value.t) list ‑> tval add_at_bottom : ?whitespace:Whitespace.t ‑> t ‑> name:Name.t ‑> value:Value.t ‑> tval add_all_at_bottom : ?whitespace:Whitespace.t ‑> t ‑> (Name.t * Value.t) list ‑> tval set : ?whitespace:Whitespace.t ‑> t ‑> name:Name.t ‑> value:Value.t ‑> tval set_at_bottom : ?whitespace:Whitespace.t ‑> t ‑> name:Name.t ‑> value:Value.t ‑> tval filter : ?whitespace:Whitespace.t ‑> t ‑> f:(name:Name.t ‑> value:Value.t ‑> bool) ‑> trewrite header values, preserving original whitespace where possible.
whitespace is used to Value.of_string ?whitespace the ~value before passing to f,
and again to Value.to_string ?whitespace the result.
If the ~value and f ~name ~value are the same no change will be made (white space is preserved).
Particularly the following is an identity transform:
 map ~whitespace:`Strip ~f:(fun ~name:_ ~value -> Value.of_string ~whitespace:`Strip value) .
By contrast the following will 'normalize' the whitespace on all headers.
 map ~whitespace:`Keep ~f:(fun ~name:_ ~value -> Value.of_string ~whitespace:`Strip value) .