functor (Ord : OrderedType->
  sig
    type elt = Ord.t
    and t
    val empty : MoreLabels.Set.S.t
    val is_empty : MoreLabels.Set.S.t -> bool
    val mem : MoreLabels.Set.S.elt -> MoreLabels.Set.S.t -> bool
    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 diff : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> MoreLabels.Set.S.t
    val compare : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> int
    val equal : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> bool
    val subset : MoreLabels.Set.S.t -> MoreLabels.Set.S.t -> bool
    val iter : f:(MoreLabels.Set.S.elt -> unit) -> MoreLabels.Set.S.t -> unit
    val fold :
      f:(MoreLabels.Set.S.elt -> '-> 'a) ->
      MoreLabels.Set.S.t -> init:'-> 'a
    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 filter :
      f:(MoreLabels.Set.S.elt -> bool) ->
      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 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 max_elt : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
    val choose : MoreLabels.Set.S.t -> MoreLabels.Set.S.elt
  end