sig
  type elt
  type t
  val empty : MoreLabels.Set.S.t
  val add : MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val singleton : MoreLabels.Set.S.elt -> MoreLabels.Set.S.t
  val remove :
    MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val union : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val inter : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val disjoint : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> bool
  val diff : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val cardinal : MoreLabels.Set.S.t -> int
  val elements : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt list
  val min_elt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val min_elt_opt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val max_elt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val max_elt_opt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val choose : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val choose_opt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val find :
    MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val find_opt :
    MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val find_first :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val find_first_opt :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val find_last :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  val find_last_opt :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.elt option
  val iter : f:(MoreLabels.Set.S.elt -> unit) -> MoreLabels.Set.S.t -> unit
  val fold :
    f:(MoreLabels.Set.S.elt -> 'acc -> 'acc) ->
    MoreLabels.Set.S.t -> init:'acc -> 'acc
  val map :
    f:(MoreLabels.Set.S.elt -> MoreLabels.Set.S.elt) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val filter :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val filter_map :
    f:(MoreLabels.Set.S.elt -> MoreLabels.Set.S.elt option) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val partition :
    f:(MoreLabels.Set.S.elt -> bool) ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t * MoreLabels.Set.S.t
  val split :
    MoreLabels.Set.S.elt ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t * bool * MoreLabels.Set.S.t
  val is_empty : MoreLabels.Set.S.t -> bool
  val mem : MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> bool
  val equal : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> bool
  val compare : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> int
  val subset : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> bool
  val for_all :
    f:(MoreLabels.Set.S.elt -> bool) -> MoreLabels.Set.S.t -> bool
  val exists : f:(MoreLabels.Set.S.elt -> bool) -> MoreLabels.Set.S.t -> bool
  val to_list : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt list
  val of_list : MoreLabels.Set.S.elt list -> MoreLabels.Set.S.t
  val to_seq_from :
    MoreLabels.Set.S.elt ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.elt Stdlib.Seq.t
  val to_seq : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt Stdlib.Seq.t
  val to_rev_seq : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt Stdlib.Seq.t
  val add_seq :
    MoreLabels.Set.S.elt Stdlib.Seq.t ->
    MoreLabels.Set.S.t -> MoreLabels.Set.S.t
  val of_seq : MoreLabels.Set.S.elt Stdlib.Seq.t -> MoreLabels.Set.S.t
end