sig
  module type T =
    sig
      type t
      val empty : Sets.T.t
      val union : Sets.T.t -> Sets.T.t -> Sets.T.t
      val inter : Sets.T.t -> Sets.T.t -> Sets.T.t
      val singleton : int -> Sets.T.t
      val mem : int -> Sets.T.t -> bool
      val equal : Sets.T.t -> Sets.T.t -> bool
      val compare : Sets.T.t -> Sets.T.t -> int
      val full : int -> Sets.T.t
      val hash : Sets.T.t -> int
      val fold : (int -> '-> 'a) -> Sets.T.t -> '-> 'a
      val shift : int -> Sets.T.t -> Sets.T.t
      val size : Sets.T.t -> int
      val rem : int -> Sets.T.t -> Sets.T.t
      val add : int -> Sets.T.t -> Sets.T.t
      val is_empty : Sets.T.t -> bool
      val intersect : Sets.T.t -> Sets.T.t -> bool
      val diff : Sets.T.t -> Sets.T.t -> Sets.T.t
      val subseteq : Sets.T.t -> Sets.T.t -> bool
      val set_compare : Sets.T.t -> Sets.T.t -> [ `Eq | `Gt | `Lt | `N ]
      val map : (int -> int) -> Sets.T.t -> Sets.T.t
      val iter : (int -> unit) -> Sets.T.t -> unit
      val filter : (int -> bool) -> Sets.T.t -> Sets.T.t
      val cardinal : Sets.T.t -> int
      val forall : Sets.T.t -> (int -> bool) -> bool
      val exists : Sets.T.t -> (int -> bool) -> bool
      val to_list : Sets.T.t -> int list
      val of_list : int list -> Sets.T.t
      val print : Format.formatter -> Sets.T.t -> unit
      val print' :
        (Format.formatter -> int -> unit) ->
        Format.formatter -> Sets.T.t -> unit
      val random : int -> float -> Sets.T.t
      module Map :
        sig
          type key = t
          type 'a t
          val create : int -> 'a t
          val clear : 'a t -> unit
          val reset : 'a t -> unit
          val copy : 'a t -> 'a t
          val add : 'a t -> key -> '-> unit
          val remove : 'a t -> key -> unit
          val find : 'a t -> key -> 'a
          val find_all : 'a t -> key -> 'a list
          val replace : 'a t -> key -> '-> unit
          val mem : 'a t -> key -> bool
          val iter : (key -> '-> unit) -> 'a t -> unit
          val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
          val length : 'a t -> int
          val stats : 'a t -> Hashtbl.statistics
        end
    end
  module OList : T
  module Small : T
  module NarithInlined : T
  module AVL : T
  module Dup : functor (M1 : T) (M2 : T-> T
end