sig
type t = UTF8Impl.t
type modified
type bytes = string
type error =
Unable_to_convert_to_modified_utf8 of t
| Unable_to_convert_from_modified_utf8 of modified
| Unable_to_convert_to_utf8 of string
| Unable_to_convert_from_utf8 of t
| Invalid_index of int * int
| Index_out_of_bounds of int * int
| Invalid_escaped_string of t
exception Exception of error
val string_of_error : error -> string
val make : UCharImpl.t list -> t
val modified_of_bytes : bytes -> modified
val bytes_of_modified : modified -> bytes
val to_modified : t -> modified
val of_modified : modified -> t
val to_string : t -> string
val to_string_noerr : t -> string
val of_string : string -> t
val to_bytes : t -> bytes
val of_bytes : bytes -> t
val of_char : char -> t
val of_uchar : UCharImpl.t -> t
val length : t -> int
val get : t -> int -> UCharImpl.t
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val index_from : t -> int -> UCharImpl.t -> int
val rindex_from : t -> int -> UCharImpl.t -> int
val substring : t -> int -> int -> t
val ( ++ ) : t -> t -> t
val concat : t list -> t
val concat_sep : t -> t list -> t
val concat_sep_map : t -> ('a -> t) -> 'a list -> t
val replace : UCharImpl.t -> UCharImpl.t -> t -> t
val contains : UCharImpl.t -> t -> bool
val split : UCharImpl.t -> t -> t list
val trim : t -> t
val escape : t -> t
val unescape : t -> t
val escape_char : UCharImpl.t -> t
external to_camomile : t -> CamomileLibrary.UTF8.t = "%identity"
external of_camomile : CamomileLibrary.UTF8.t -> t = "%identity"
end