Format.ArgsSourceThe Args module defines a heterogeneous list type, which can be used as the argument of printf-like functions.
It is not required to open this module when using the functions that accept an Args.t. Thanks to type-based disambiguation, the type is inferred automatically, so the list syntax [x; y; z] can be used directly for heterogeneous lists.
An example:
(* without opening Args *)
Format.lprintf "%s %d %.02f@." [ "ocaml"; 42; 3.14 ]
(* or with explicit construction *)
let lst = let open Format.Args in "ocaml" :: [ 42; 3.14 ] @ [ 'c' ] in
Format.lprintf "%s %d %.02f %c@." lst