sig
  type unichar = int
  type unistring = Gutf8.unichar array
  val from_unichar : Gutf8.unichar -> string
  val from_unistring : Gutf8.unistring -> string
  val to_unichar_validated :
    string -> pos:int Pervasives.ref -> Gutf8.unichar
  val to_unichar : string -> pos:int Pervasives.ref -> Gutf8.unichar
  val to_unistring : string -> Gutf8.unistring
  val first_char : string -> Gutf8.unichar
  val next : string -> pos:int -> int
  val length : string -> int
  module Error :
    sig
      type error =
          NO_CONVERSION
        | ILLEGAL_SEQUENCE
        | FAILED
        | PARTIAL_INPUT
        | BAD_URI
        | NOT_ABSOLUTE_PATH
      exception Error of Gutf8.Error.error * string
      val raise_bad_utf8 : unit -> 'a
    end
end