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