Char(3) OCaml library Char(3)

# [NAME](#NAME)

Char - Character operations.

# [Module](#Module)

Module Char

# [Documentation](#Documentation)

Module **Char**  
: **sig end**

Character operations.

Characters are the elements of **string** and **bytes** values. Characters represent bytes, that is an integer in the range \[ **0x00** ; **0xFF** ].

Some of the functions of this module interpret the characters in the range \[ **0x00** ; **0x7F** ] as the characters of the ASCII character set.

## [Characters](#Characters)

*type t* = **char**

An alias for the type of characters.

*val code* : **char -&gt; int**

**code c** is the byte corresponding to **c** . If **c** is an ASCII character this corresponds to its encoding in ASCII or UTF-8.

*val chr* : **int -&gt; char**

Return the character with the given integer code.

**Raises Invalid\_argument** if the argument is outside the range \[ **0x00** ; **0xFF** ].

*val escaped* : **char -&gt; string**

Return a string representing the given character, with special characters escaped following the lexical conventions of OCaml. All characters outside the ASCII printable range \[ **0x20** ; **0x7E** ] are escaped, as well as backslash, double-quote, and single-quote.

## [Predicates and comparisons](#Predicates_and_comparisons)

See also the **Char.Ascii** module.

*val compare* : **t -&gt; t -&gt; int**

The comparison function for characters, with the same specification as **compare** . Along with the type **t** , this function **compare** allows the module **Char** to be passed as argument to the functors **Set.Make** and **Map.Make** . The order is compatible with **Char.code** .

*val equal* : **t -&gt; t -&gt; bool**

The equal function for chars.

**Since** 4.03

## [ASCII characters](#ASCII_characters)

*module Ascii :* **sig end**

ASCII character set support.

These functions give meaning to the integers \[ **0x00** ; **0x7F** ] of the ASCII character set.

Since the UTF-8 encoding of Unicode has the same encoding and character semantics (U+0000 to U+001F) for these bytes, the functions can be safely used on elements of UTF-8 encoded **string** and **bytes** values. However the functions only deal with ASCII related matters. For example the notion of Unicode whitespace is much larger than the ASCII whitespace determined by **Char.Ascii.is\_white** .

**Since** 5.4

*val lowercase\_ascii* : **char -&gt; char**

Use the equivalent **Char.Ascii.lowercase** instead.

**Since** 4.03

*val uppercase\_ascii* : **char -&gt; char**

Use the equivalent **Char.Ascii.uppercase** instead.

**Since** 4.03

## [Hashing](#Hashing)

*val seeded\_hash* : **int -&gt; t -&gt; int**

A seeded hash function for characters, with the same output value as **Hashtbl.seeded\_hash** . This function allows this module to be passed as argument to the functor **Hashtbl.MakeSeeded** .

**Since** 5.1

*val hash* : **t -&gt; int**

An unseeded hash function for characters, with the same output value as **Hashtbl.hash** . This function allows this module to be passed as argument to the functor **Hashtbl.Make** .

**Since** 5.1

2026-10-01 OCamldoc

---

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