Functor Sets.Dup

module Dup: 
functor (M1 : T) ->
functor (M2 : T) -> T
duplicator, to check the consistency of one implementation w.r.t. another one
Parameters:
M1 : T
M2 : T

type t 
val empty : t
val union : t -> t -> t
val inter : t -> t -> t
val singleton : int -> t
val mem : int -> t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int
val full : int -> t
val hash : t -> int
val fold : (int -> 'a -> 'a) -> t -> 'a -> 'a
val shift : int -> t -> t
val size : t -> int
val rem : int -> t -> t
val add : int -> t -> t
val is_empty : t -> bool
val intersect : t -> t -> bool
val diff : t -> t -> t
val subseteq : t -> t -> bool
val set_compare : t -> t -> [ `Eq | `Gt | `Lt | `N ]
val map : (int -> int) -> t -> t
val iter : (int -> unit) -> t -> unit
val filter : (int -> bool) -> t -> t
val cardinal : t -> int
val forall : t -> (int -> bool) -> bool
val exists : t -> (int -> bool) -> bool
val to_list : t -> int list
val of_list : int list -> t
val print : Format.formatter -> t -> unit
val print' : (Format.formatter -> int -> unit) -> Format.formatter -> t -> unit
val random : int -> float -> t
module Map: Hashtbl.S  with type key = t