Longident(3) OCaml library Longident(3)

# [NAME](#NAME)

Longident - Long identifiers, used in parsetree.

# [Module](#Module)

Module Longident

# [Documentation](#Documentation)

Module **Longident**  
: **sig end**

Long identifiers, used in parsetree.

Warning: this module is unstable and part of **Compiler\_libs** .

To print a longident, see **Pprintast.longident** , using **Format.asprintf** to convert to a string.

*type t* =  
| Lident **of** **string**  
| Ldot **of** **t * string**  
| Lapply **of** **t * t**

*val flatten* : **t -&gt; string list**

*val unflatten* : **string list -&gt; t option**

For a non-empty list **l** , **unflatten l** is **Some lid** where **lid** is the long identifier created by concatenating the elements of **l** with **Ldot** . **unflatten \[]** is **None** .

*val last* : **t -&gt; string**

*val parse* : **string -&gt; t**

This function is broken on identifiers that are not just "Word.Word.word"; for example, it returns incorrect results on infix operators and extended module paths.

If you want to generate long identifiers that are a list of dot-separated identifiers, the function **Longident.unflatten** is safer and faster. **Longident.unflatten** is available since OCaml 4.06.0.

If you want to parse any identifier correctly, use the long-identifiers functions from the **Parse** module, in particular **Parse.longident** . They are available since OCaml 4.11, and also provide proper input-location support.

2026-09-15 OCamldoc

---

Document: Longident(3o) from ocaml-4 4.14.4-r3 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
