sig   val encoding_guess : string -> [ `UTF_16BE | `UTF_16LE | `UTF_8 ] * bool   type 'a folder =       '-> int -> [ `Malformed of string | `Uchar of Uchar.t ] -> 'a   val fold_utf_8 :     ?pos:int -> ?len:int -> 'Uutf.String.folder -> '-> string -> 'a   val fold_utf_16be :     ?pos:int -> ?len:int -> 'Uutf.String.folder -> '-> string -> 'a   val fold_utf_16le :     ?pos:int -> ?len:int -> 'Uutf.String.folder -> '-> string -> 'a   module UTF_8 :     sig       type t = private string       val is_valid : string -> bool       val of_string :         string ->         (Uutf.String.UTF_8.t, Uutf.String.UTF_8.t) Pervasives.result       val v : string -> Uutf.String.UTF_8.t       val unsafe_of_string : string -> Uutf.String.UTF_8.t       val to_string : Uutf.String.UTF_8.t -> string       val next_index : Uutf.String.UTF_8.t -> int -> int       val prev_index : Uutf.String.UTF_8.t -> int -> int       val fold_indices : ('-> int -> 'a) -> '-> Uutf.String.UTF_8.t -> 'a       val get_uchar : Uutf.String.UTF_8.t -> int -> Uchar.t       val fold_uchars :         ('-> int -> Uchar.t -> 'a) -> '-> Uutf.String.UTF_8.t -> 'a       val append :         Uutf.String.UTF_8.t -> Uutf.String.UTF_8.t -> Uutf.String.UTF_8.t       val concat :         Uutf.String.UTF_8.t ->         Uutf.String.UTF_8.t list -> Uutf.String.UTF_8.t       val equal : Uutf.String.UTF_8.t -> Uutf.String.UTF_8.t -> bool       val compare : Uutf.String.UTF_8.t -> Uutf.String.UTF_8.t -> int     end end