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