sig
  type t = (int32, Bigarray.int32_elt, Bigarray.c_layout) Bigarray.Array1.t
  exception Malformed_code
  val validate : UCS4.t -> unit
  val get : UCS4.t -> int -> UChar.t
  val init : int -> (int -> UChar.t) -> UCS4.t
  val length : UCS4.t -> int
  type index = int
  val nth : UCS4.t -> int -> UCS4.index
  val first : UCS4.t -> UCS4.index
  val last : UCS4.t -> UCS4.index
  val look : UCS4.t -> UCS4.index -> UChar.t
  val out_of_range : UCS4.t -> UCS4.index -> bool
  val compare_index : UCS4.t -> UCS4.index -> UCS4.index -> int
  val next : UCS4.t -> UCS4.index -> UCS4.index
  val prev : UCS4.t -> UCS4.index -> UCS4.index
  val move : UCS4.t -> UCS4.index -> int -> UCS4.index
  val iter : (UChar.t -> unit) -> UCS4.t -> unit
  val compare : UCS4.t -> UCS4.t -> int
  module Buf :
    sig
      type buf
      val create : int -> UCS4.Buf.buf
      val contents : UCS4.Buf.buf -> UCS4.t
      val clear : UCS4.Buf.buf -> unit
      val reset : UCS4.Buf.buf -> unit
      val add_char : UCS4.Buf.buf -> UChar.t -> unit
      val add_string : UCS4.Buf.buf -> UCS4.t -> unit
      val add_buffer : UCS4.Buf.buf -> UCS4.Buf.buf -> unit
    end
end