sig
  type t
  exception Out_of_range
  val char_of : UChar.t -> char
  val of_char : char -> UChar.t
  val code : UChar.t -> int
  val chr : int -> UChar.t
  external uint_code : UChar.t -> int = "%identity"
  val chr_of_uint : int -> UChar.t
  external unsafe_chr_of_uint : int -> UChar.t = "%identity"
  val eq : UChar.t -> UChar.t -> bool
  val compare : UChar.t -> UChar.t -> int
  type uchar = UChar.t
  val int_of_uchar : UChar.uchar -> int
  val uchar_of_int : int -> UChar.uchar
end