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

# Stdlib.Char(3o)

no description

## NAME

Stdlib.Char - no description

## Module

Module   Stdlib.Char

## Documentation

Module **Char**\
  :  **(module Stdlib\_\_Char)**

### Characters

*type t* =  **char**

An alias for the type of characters.

*val code* :  **char -\> 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 -\> char**

Return the character with the given integer code.

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

*val escaped* :  **char -\> 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

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

*val compare* :  **t -\> t -\> 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 -\> t -\> bool**

The equal function for chars.

**Since** 4.03

### 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 -\> char**

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

**Since** 4.03

*val uppercase\_ascii* :  **char -\> char**

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

**Since** 4.03

### Hashing

*val seeded\_hash* :  **int -\> t -\> 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 -\> 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
