    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 -> 'a) ->
          MoreLabels.Set.S.t -> init:'a -> '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