`sig type variable_option = [ `Blanked | `Non_ignorable | `Shift_Trimmed | `Shifted ] type precision = [ `Primary | `Quaternary | `Secondary | `Tertiary ] module type Type = sig type text type index val compare : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> CamomileLibrary.UCol.Type.text -> CamomileLibrary.UCol.Type.text -> int val sort_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> CamomileLibrary.UCol.Type.text -> string val compare_with_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> string -> CamomileLibrary.UCol.Type.text -> int val search_with_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> string -> CamomileLibrary.UCol.Type.text -> CamomileLibrary.UCol.Type.index -> CamomileLibrary.UCol.Type.index * CamomileLibrary.UCol.Type.index val search : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> CamomileLibrary.UCol.Type.text -> CamomileLibrary.UCol.Type.text -> CamomileLibrary.UCol.Type.index -> CamomileLibrary.UCol.Type.index * CamomileLibrary.UCol.Type.index end module Make : functor (Config : ConfigInt.Type) (Text : UnicodeString.Type) -> sig type text = Text.t type index = Text.index val compare : ?locale:string -> ?prec:precision -> ?variable:variable_option -> text -> text -> int val sort_key : ?locale:string -> ?prec:precision -> ?variable:variable_option -> text -> string val compare_with_key : ?locale:string -> ?prec:precision -> ?variable:variable_option -> string -> text -> int val search_with_key : ?locale:string -> ?prec:precision -> ?variable:variable_option -> string -> text -> index -> index * index val search : ?locale:string -> ?prec:precision -> ?variable:variable_option -> text -> text -> index -> index * index end end`