sig   module type Type =     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   module Make :     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 end