`sig
type t [@@immediate]
val min : Uchar.t
val max : Uchar.t
val bom : Uchar.t
val rep : Uchar.t
val succ : Uchar.t -> Uchar.t
val pred : Uchar.t -> Uchar.t
val is_valid : int -> bool
val of_int : int -> Uchar.t
val unsafe_of_int : int -> Uchar.t
val to_int : Uchar.t -> int
val is_char : Uchar.t -> bool
val of_char : char -> Uchar.t
val to_char : Uchar.t -> char
val unsafe_to_char : Uchar.t -> char
val equal : Uchar.t -> Uchar.t -> bool
val compare : Uchar.t -> Uchar.t -> int
val seeded_hash : int -> Uchar.t -> int
val hash : Uchar.t -> int
type utf_decode [@@immediate]
val utf_decode_is_valid : Uchar.utf_decode -> bool
val utf_decode_uchar : Uchar.utf_decode -> Uchar.t
val utf_decode_length : Uchar.utf_decode -> int
val utf_decode : int -> Uchar.t -> Uchar.utf_decode
val utf_decode_invalid : int -> Uchar.utf_decode
val utf_8_decode_length_of_byte : char -> int
val max_utf_8_decode_length : int
val utf_8_byte_length : Uchar.t -> int
val utf_16_byte_length : Uchar.t -> int
end`