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