Format.Args(3) OCaml library Format.Args(3)

# [NAME](#NAME)

Format.Args - The Args module defines a heterogeneous list type, which can be used as the argument of printf-like functions.

# [Module](#Module)

Module Format.Args

# [Documentation](#Documentation)

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** **-&gt;** **('a0 -&gt; 'b, 'r1) t**

*val apply* : **'a -&gt; ('a, 'r) t -&gt; 'r**

*val (@)* : **('a, 'r1) t -&gt;** **('r1, 'r2) t -&gt; ('a, 'r2) t**

2026-10-01 OCamldoc

---

Document: Format.Args(3o) from ocaml 5.5.1-r1 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
