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