`sig
type t = BatUTF8.t
exception Malformed_code
val validate : string -> unit
val append : t -> t -> t
val empty : t
val of_char : BatCamomile.UChar.t -> t
val make : int -> BatCamomile.UChar.t -> t
val of_string : string -> t
val to_string : t -> string
val adopt : string -> t
val enum : t -> BatCamomile.UChar.t BatEnum.t
val of_enum : BatCamomile.UChar.t BatEnum.t -> t
val backwards : t -> BatCamomile.UChar.t BatEnum.t
val of_backwards : BatCamomile.UChar.t BatEnum.t -> t
val sub : t -> int -> int -> t
val get : t -> int -> BatCamomile.UChar.t
val length : t -> int
val length0 : int -> int
type char_idx = int
module Byte :
sig
type b_idx = BatUTF8.Byte.b_idx
val of_int_unsafe : int -> b_idx
val to_int : b_idx -> int
val next : t -> b_idx -> b_idx
val prev : t -> b_idx -> b_idx
val of_char_idx : t -> char_idx -> b_idx
val at_end : t -> b_idx -> bool
val out_of_range : t -> b_idx -> bool
val first : b_idx
val last : t -> b_idx
val move : t -> b_idx -> int -> b_idx
end
type index = int
val look : t -> Byte.b_idx -> BatCamomile.UChar.t
val out_of_range : t -> Byte.b_idx -> bool
val compare_index : t -> index -> index -> int
val next : t -> index -> index
val prev : t -> index -> index
val move : t -> index -> int -> index
val iter : (BatCamomile.UChar.t -> unit) -> t -> unit
val compare : t -> t -> int
val concat : t -> t list -> t
val join : t -> t list -> t
val uppercase : t -> t
val lowercase : t -> t
val casefold : t -> t
val init : int -> (int -> BatCamomile.UChar.t) -> t
val map : (BatCamomile.UChar.t -> BatCamomile.UChar.t) -> t -> t
val filter_map :
(BatCamomile.UChar.t -> BatCamomile.UChar.t option) -> t -> t
val filter : (BatCamomile.UChar.t -> bool) -> t -> t
val index : t -> BatCamomile.UChar.t -> int
val rindex : t -> BatCamomile.UChar.t -> int
val contains : t -> BatCamomile.UChar.t -> bool
val contains_from : t -> BatCamomile.UChar.t -> Byte.b_idx -> bool
val rcontains_from : t -> BatCamomile.UChar.t -> Byte.b_idx -> bool
val escaped : t -> t
module Buf :
sig
type buf = Buffer.t
val create : int -> buf
val contents : buf -> t
val clear : buf -> unit
val reset : buf -> unit
val add_char : buf -> BatCamomile.UChar.t -> unit
val add_string : buf -> t -> unit
val add_buffer : buf -> buf -> unit
end
val print : 'a BatInnerIO.output -> t -> unit
val t_printer : t BatValue_printer.t
external of_string_unsafe : string -> t = "%identity"
external to_string_unsafe : t -> string = "%identity"
val unsafe_get : t -> int -> BatCamomile.UChar.t
val copy_set : t -> int -> BatCamomile.UChar.t -> t
end`