sig   type uchar = int   val is_uchar : int -> bool   val unicode_version : string   type custom   type boundary =       [ `Custom of Uuseg.custom       | `Grapheme_cluster       | `Line_break       | `Sentence       | `Word ]   val pp_boundary : Format.formatter -> Uuseg.boundary -> unit   type t   type ret = [ `Await | `Boundary | `End | `Uchar of Uuseg.uchar ]   val create : [< Uuseg.boundary ] -> Uuseg.t   val boundary : Uuseg.t -> Uuseg.boundary   val add : Uuseg.t -> [ `Await | `End | `Uchar of Uuseg.uchar ] -> Uuseg.ret   val mandatory : Uuseg.t -> bool   val copy : Uuseg.t -> Uuseg.t   val pp_ret : Format.formatter -> [< Uuseg.ret ] -> unit   val custom :     ?mandatory:('-> bool) ->     name:string ->     create:(unit -> 'a) ->     copy:('-> 'a) ->     add:('-> [ `Await | `End | `Uchar of Uuseg.uchar ] -> Uuseg.ret) ->     unit -> Uuseg.custom   val err_exp_await : [< Uuseg.ret ] -> 'a   val err_ended : [< Uuseg.ret ] -> 'a end