# Module Format.Args

    module Args: sig .. end

The `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

- Since 5.5

    type ('a, 'r) t =

`|` | `[] : `('r0, 'r0) t``
`|` | `(::) : `'a0 * ('b, 'r1) t` -> `('a0 -> 'b, 'r1) t``

    val apply : 'a -> ('a, 'r) t -> 'r

    val (@) : ('a, 'r1) t ->
           ('r1, 'r2) t -> ('a, 'r2) t