Misc.Utf8\_lexeme(3) OCaml library Misc.Utf8\_lexeme(3)

# [NAME](#NAME)

Misc.Utf8\_lexeme - no description

# [Module](#Module)

Module Misc.Utf8\_lexeme

# [Documentation](#Documentation)

Module **Utf8\_lexeme**  
: **sig end**

*type t* = **string**

*val normalize* : **string -&gt; (t, t) Result.t**

Normalize the given UTF-8 encoded string. Invalid UTF-8 sequences results in a error and are replaced by U+FFFD. Identifier characters are put in NFC normalized form. Other Unicode characters are left unchanged.

*val capitalize* : **string -&gt; (t, t) Result.t**

Like **normalize** , but if the string starts with a lowercase identifier character, it is replaced by the corresponding uppercase character. Subsequent characters are not changed.

*val uncapitalize* : **string -&gt; (t, t) Result.t**

Like **normalize** , but if the string starts with an uppercase identifier character, it is replaced by the corresponding lowercase character. Subsequent characters are not changed.

*val is\_capitalized* : **t -&gt; bool**

Returns **true** if the given normalized string starts with an uppercase identifier character, **false** otherwise. May return wrong results if the string is not normalized.

*val is\_valid\_identifier* : **t -&gt; bool**

Check whether the given normalized string is a valid OCaml identifier:

-all characters are identifier characters

-it does not start with a digit or a single quote

*val is\_lowercase* : **t -&gt; bool**

Returns **true** if the given normalized string only contains lowercase identifier character, **false** otherwise. May return wrong results if the string is not normalized.

*type validation\_result* =  
| Valid  
| Invalid\_character **of** **Uchar.t**  
(* Character not allowed  
\*)  
| Invalid\_beginning **of** **Uchar.t**  
(* Character not allowed as first char  
\*)

*val validate\_identifier* : **?with\_dot:bool -&gt; t -&gt; validation\_result**

Like **is\_valid\_identifier** , but returns a more detailed error code. Dots can be allowed to extend support to path-like identifiers.

*val starts\_like\_a\_valid\_identifier* : **t -&gt; bool**

Checks whether the given normalized string starts with an identifier character other than a digit or a single quote. Subsequent characters are not checked.

2026-10-01 OCamldoc

---

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