sig
  module type Encoding_T =
    sig
      val to_ucs4 : (char Cf_seq.t option, int) Cf_flow.t
      val of_ucs4 : (int, char) Cf_flow.t
    end
  module E_utf8 : Encoding_T
  module E_utf16be : Encoding_T
  module E_utf16le : Encoding_T
  val any_utf_to_ucs4 : (char Cf_seq.t option, int) Cf_flow.t
  val ucs4_to_utf16 : [< `BE | `LE ] -> (int, char) Cf_flow.t
  module type Transcoding_T =
    sig
      module E : Encoding_T
      val transcoder : (char Cf_seq.t option, char) Cf_flow.t
      val transcode : char Cf_seq.t -> char Cf_seq.t
      val atomic : string -> string
    end
  module C_create :
    functor (E : Encoding_T->
      sig
        module E :
          sig
            val to_ucs4 : (char Cf_seq.t option, int) Cf_flow.t
            val of_ucs4 : (int, char) Cf_flow.t
          end
        val transcoder : (char Cf_seq.t option, char) Cf_flow.t
        val transcode : char Cf_seq.t -> char Cf_seq.t
        val atomic : string -> string
      end
  module C_utf8_to_utf16be : Transcoding_T
  module C_utf8_to_utf16le : Transcoding_T
  module C_utf8_to_utf16be_raw : Transcoding_T
  module C_utf8_to_utf16le_raw : Transcoding_T
  module C_utf16be_to_utf8 : Transcoding_T
  module C_utf16le_to_utf8 : Transcoding_T
  module C_any_utf_to_utf8 : Transcoding_T
  module C_any_utf_to_utf16be : Transcoding_T
  module C_any_utf_to_utf16le : Transcoding_T
  module C_any_utf_to_utf16be_raw : Transcoding_T
  module C_any_utf_to_utf16le_raw : Transcoding_T
end