sig
  type t
  val empty : Main.Type.USet.t
  val is_empty : Main.Type.USet.t -> bool
  val mem : Main.Type.UChar.t -> Main.Type.USet.t -> bool
  val add : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val add_range :
    Main.Type.UChar.t ->
    Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val singleton : Main.Type.UChar.t -> Main.Type.USet.t
  val remove : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val remove_range :
    Main.Type.UChar.t ->
    Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val union : Main.Type.USet.t -> Main.Type.USet.t -> Main.Type.USet.t
  val inter : Main.Type.USet.t -> Main.Type.USet.t -> Main.Type.USet.t
  val diff : Main.Type.USet.t -> Main.Type.USet.t -> Main.Type.USet.t
  val compl : Main.Type.USet.t -> Main.Type.USet.t
  val compare : Main.Type.USet.t -> Main.Type.USet.t -> int
  val equal : Main.Type.USet.t -> Main.Type.USet.t -> bool
  val subset : Main.Type.USet.t -> Main.Type.USet.t -> bool
  val from : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val after : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val until : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val before : Main.Type.UChar.t -> Main.Type.USet.t -> Main.Type.USet.t
  val iter : (Main.Type.UChar.t -> unit) -> Main.Type.USet.t -> unit
  val iter_range :
    (Main.Type.UChar.t -> Main.Type.UChar.t -> unit) ->
    Main.Type.USet.t -> unit
  val fold : (Main.Type.UChar.t -> '-> 'a) -> Main.Type.USet.t -> '-> 'a
  val fold_range :
    (Main.Type.UChar.t -> Main.Type.UChar.t -> '-> 'a) ->
    Main.Type.USet.t -> '-> 'a
  val for_all : (Main.Type.UChar.t -> bool) -> Main.Type.USet.t -> bool
  val exists : (Main.Type.UChar.t -> bool) -> Main.Type.USet.t -> bool
  val filter :
    (Main.Type.UChar.t -> bool) -> Main.Type.USet.t -> Main.Type.USet.t
  val partition :
    (Main.Type.UChar.t -> bool) ->
    Main.Type.USet.t -> Main.Type.USet.t * Main.Type.USet.t
  val cardinal : Main.Type.USet.t -> int
  val elements : Main.Type.USet.t -> Main.Type.UChar.t list
  val ranges :
    Main.Type.USet.t -> (Main.Type.UChar.t * Main.Type.UChar.t) list
  val min_elt : Main.Type.USet.t -> Main.Type.UChar.t
  val max_elt : Main.Type.USet.t -> Main.Type.UChar.t
  val choose : Main.Type.USet.t -> Main.Type.UChar.t
  val uset_of_iset : Main.Type.ISet.t -> Main.Type.USet.t
  val iset_of_uset : Main.Type.USet.t -> Main.Type.ISet.t
end