123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159modulePrivate=structmoduleAvlTree=AvlTreemoduleBitsvect=BitsvectmoduleBytesvect=BytesvectmoduleByte_labeled_dag=Byte_labeled_dagmoduleCharmap=CharmapmoduleDatabase=DatabasemoduleHangul=HangulmoduleIMap=IMapmoduleISet=ISetmoduleStringPrep_data=StringPrep_datamoduleTbl31=Tbl31moduleUReStrLexer=UReStrLexermoduleUReStrParser=UReStrParsermoduleUReStrParserType=UReStrParserTypemoduleUnidata=UnidatamoduleUnimap=UnimapmoduleXArray=XArrayendmoduleConfigInt=ConfigIntmoduleDefaultConfig=CamomileDefaultConfig(** Individual modules *)moduleOOChannel=OOChannelmoduleUChar=UCharmoduleUSet=USetmoduleUMap=UMapmoduleUCharTbl=UCharTblmoduleUnicodeString=UnicodeStringmoduleUText=UTextmoduleXString=XStringmoduleSubText=SubTextmoduleULine=ULinemoduleLocale=LocalemoduleUTF8=UTF8moduleUTF16=UTF16moduleUCS4=UCS4moduleUPervasives=UPervasivesmoduleURe=URemoduleCharEncoding=CharEncodingmoduleUCharInfo=UCharInfomoduleUNF=UNFmoduleUCol=UColmoduleCaseMap=CaseMapmoduleUReStr=UReStrmoduleStringPrep=StringPrep(** All-in-one, configure once at beginning module*)moduletypeType=sigmoduleOOChannel:moduletypeofOOChannelmoduleUSet:moduletypeofUSetmoduleUChar:moduletypeofUCharmoduleUMap:moduletypeofUMapmoduleUCharTbl:moduletypeofUCharTblmoduleUnicodeString:moduletypeofUnicodeStringmoduleUText:moduletypeofUTextmoduleXString:moduletypeofXStringmoduleSubText:moduletypeofSubTextmoduleULine:moduletypeofULinemoduleLocale:moduletypeofLocalemoduleCharEncoding:CharEncoding.InterfacemoduleUTF8:moduletypeofUTF8moduleUTF16:moduletypeofUTF16moduleUCS4:moduletypeofUCS4moduleUPervasives:moduletypeofUPervasivesmoduleURe:moduletypeofURemoduleUCharInfo:UCharInfo.TypemoduleUNF:sigmoduletypeType=UNF.TypemoduleMake(Text:UnicodeString.Type):Typewithtypetext=Text.tandtypeindex=Text.indexendmoduleUCol:sig(** How variables are handled *)typevariable_option=[`Blanked|`Non_ignorable|`Shifted|`Shift_Trimmed](** Strength of comparison. For European languages, each strength
roughly means as
`Primary : Ignore accents and case
`Secondary : Ignore case but accents are counted in.
`Tertiary : Accents and case are counted in.
For the case of `Shifted, `Shift_Trimmed, there is the fourth strength.
`Quaternary : Variables such as - (hyphen) are counted in. *)typeprecision=[`Primary|`Secondary|`Tertiary|`Quaternary]moduletypeType=UCol.TypemoduleMake(Text:UnicodeString.Type):Typewithtypetext=Text.tandtypeindex=Text.indexendmoduleCaseMap:sigmoduletypeType=CaseMap.TypemoduleMake(Text:UnicodeString.Type):(Typewithtypetext=Text.t)endmoduleUReStr:UReStr.InterfacemoduleStringPrep:sigmoduletypeType=StringPrep.TypemoduleMake(Text:UnicodeString.Type):(Typewithtypetext=Text.t)endendmoduleMake(Config:ConfigInt.Type)=structmoduleOOChannel=OOChannelmoduleUChar=UCharmoduleUSet=USetmoduleUMap=UMapmoduleUCharTbl=UCharTblmoduleUnicodeString=UnicodeStringmoduleUText=UTextmoduleXString=XStringmoduleSubText=SubTextmoduleULine=ULinemoduleLocale=LocalemoduleCharEncoding=CharEncoding.Configure(Config)moduleUTF8=UTF8moduleUTF16=UTF16moduleUCS4=UCS4moduleUPervasives=UPervasivesmoduleURe=URemoduleUCharInfo=UCharInfo.Make(Config)moduleUNF=structmoduletypeType=UNF.TypemoduleMake=UNF.Make(Config)endmoduleUCol=structtypevariable_option=[`Blanked|`Non_ignorable|`Shifted|`Shift_Trimmed]typeprecision=[`Primary|`Secondary|`Tertiary|`Quaternary]moduletypeType=UCol.TypemoduleMake=UCol.Make(Config)endmoduleCaseMap=structmoduletypeType=CaseMap.TypemoduleMake=CaseMap.Make(Config)endmoduleUReStr=UReStr.Configure(Config)moduleStringPrep=structmoduletypeType=StringPrep.TypemoduleMake=StringPrep.Make(Config)endend