sig
  type text
  class nfd :
    CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel ->
    [CamomileLibrary.UChar.t] OOChannel.obj_output_channel
  class nfc :
    CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel ->
    [CamomileLibrary.UChar.t] OOChannel.obj_output_channel
  class nfkd :
    CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel ->
    [CamomileLibrary.UChar.t] OOChannel.obj_output_channel
  class nfkc :
    CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel ->
    [CamomileLibrary.UChar.t] OOChannel.obj_output_channel
  val nfd : CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text
  val nfkd : CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text
  val nfc : CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text
  val nfkc : CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text
  module NFCBuf :
    sig
      type buf
      val create : int -> CamomileLibrary.UNF.Type.NFCBuf.buf
      val contents :
        CamomileLibrary.UNF.Type.NFCBuf.buf -> CamomileLibrary.UNF.Type.text
      val clear : CamomileLibrary.UNF.Type.NFCBuf.buf -> unit
      val reset : CamomileLibrary.UNF.Type.NFCBuf.buf -> unit
      val add_char :
        CamomileLibrary.UNF.Type.NFCBuf.buf ->
        CamomileLibrary.UChar.t -> unit
      val add_string :
        CamomileLibrary.UNF.Type.NFCBuf.buf ->
        CamomileLibrary.UNF.Type.text -> unit
      val add_buffer :
        CamomileLibrary.UNF.Type.NFCBuf.buf ->
        CamomileLibrary.UNF.Type.NFCBuf.buf -> unit
    end
  val nfc_append :
    CamomileLibrary.UNF.Type.text ->
    CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text
  val put_nfd :
    CamomileLibrary.XString.t -> CamomileLibrary.UNF.Type.text -> unit
  val put_nfkd :
    CamomileLibrary.XString.t -> CamomileLibrary.UNF.Type.text -> unit
  val put_nfc :
    CamomileLibrary.XString.t -> CamomileLibrary.UNF.Type.text -> unit
  val put_nfkc :
    CamomileLibrary.XString.t -> CamomileLibrary.UNF.Type.text -> unit
  type index
  val nfd_inc :
    CamomileLibrary.UNF.Type.text ->
    CamomileLibrary.UNF.Type.index ->
    ([ `Inc of
         CamomileLibrary.UChar.t list * CamomileLibrary.UNF.Type.index *
         'a lazy_t ]
     as 'a)
  val canon_compare :
    CamomileLibrary.UNF.Type.text -> CamomileLibrary.UNF.Type.text -> int
  val nfd_decompose : CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t list
  val nfkd_decompose :
    CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t list
end