sig
  type t = string
  val equal : Encoding.t -> Encoding.t -> bool
  val system : Encoding.t
  type code_point = int
  val recode_string : src:Encoding.t -> dst:Encoding.t -> string -> string
  type decoder
  val decoder : Encoding.t -> Encoding.decoder
  type decoding_result =
      Dec_ok of Encoding.code_point * int
    | Dec_need_more
    | Dec_error
  val decode :
    Encoding.decoder -> string -> int -> int -> Encoding.decoding_result
  type encoder
  val encoder : Encoding.t -> Encoding.encoder
  type encoding_result = Enc_ok of int | Enc_need_more | Enc_error
  val encode :
    Encoding.encoder ->
    string -> int -> int -> Encoding.code_point -> Encoding.encoding_result
end