sig   val u_bom : Uchar.t   val u_rep : Uchar.t   type encoding = [ `UTF_16 | `UTF_16BE | `UTF_16LE | `UTF_8 ]   type decoder_encoding =       [ `ISO_8859_1 | `US_ASCII | `UTF_16 | `UTF_16BE | `UTF_16LE | `UTF_8 ]   val encoding_of_string : string -> Uutf.decoder_encoding option   val encoding_to_string : [< Uutf.decoder_encoding ] -> string   type src =       [ `Channel of Pervasives.in_channel | `Manual | `String of string ]   type nln = [ `ASCII of Uchar.t | `NLF of Uchar.t | `Readline of Uchar.t ]   type decoder   val decoder :     ?nln:[< Uutf.nln ] ->     ?encoding:[< Uutf.decoder_encoding ] -> [< Uutf.src ] -> Uutf.decoder   val decode :     Uutf.decoder ->     [ `Await | `End | `Malformed of string | `Uchar of Uchar.t ]   val decoder_encoding : Uutf.decoder -> Uutf.decoder_encoding   val set_decoder_encoding :     Uutf.decoder -> [< Uutf.decoder_encoding ] -> unit   val decoder_line : Uutf.decoder -> int   val decoder_col : Uutf.decoder -> int   val decoder_byte_count : Uutf.decoder -> int   val decoder_count : Uutf.decoder -> int   val decoder_removed_bom : Uutf.decoder -> bool   val decoder_src : Uutf.decoder -> Uutf.src   val decoder_nln : Uutf.decoder -> Uutf.nln option   val pp_decode :     Format.formatter ->     [< `Await | `End | `Malformed of string | `Uchar of Uchar.t ] -> unit   type dst =       [ `Buffer of Buffer.t | `Channel of Pervasives.out_channel | `Manual ]   type encoder   val encoder : [< Uutf.encoding ] -> [< Uutf.dst ] -> Uutf.encoder   val encode :     Uutf.encoder ->     [< `Await | `End | `Uchar of Uchar.t ] -> [ `Ok | `Partial ]   val encoder_encoding : Uutf.encoder -> Uutf.encoding   val encoder_dst : Uutf.encoder -> Uutf.dst   module Manual :     sig       val src : Uutf.decoder -> Bytes.t -> int -> int -> unit       val dst : Uutf.encoder -> Bytes.t -> int -> int -> unit       val dst_rem : Uutf.encoder -> int     end   module String :     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   module Buffer :     sig       val add_utf_8 : Buffer.t -> Uchar.t -> unit       val add_utf_16be : Buffer.t -> Uchar.t -> unit       val add_utf_16le : Buffer.t -> Uchar.t -> unit     end end