---
name: "Format.Args"
section: "3o"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Format.Args"
---

# Format.Args(3o)

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

## NAME

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

## Module

Module   Format.Args

## 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** **-\>** **('a0 -\> 'b, 'r1) t**

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

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