sig
  module M : Extmap.S
  type elt = M.key
  type t = unit M.t
  val empty : Extset.S.t
  val is_empty : Extset.S.t -> bool
  val mem : Extset.S.elt -> Extset.S.t -> bool
  val add : Extset.S.elt -> Extset.S.t -> Extset.S.t
  val singleton : Extset.S.elt -> Extset.S.t
  val remove : Extset.S.elt -> Extset.S.t -> Extset.S.t
  val merge :
    (Extset.S.elt -> bool -> bool -> bool) ->
    Extset.S.t -> Extset.S.t -> Extset.S.t
  val compare : Extset.S.t -> Extset.S.t -> int
  val equal : Extset.S.t -> Extset.S.t -> bool
  val subset : Extset.S.t -> Extset.S.t -> bool
  val disjoint : Extset.S.t -> Extset.S.t -> bool
  val iter : (Extset.S.elt -> unit) -> Extset.S.t -> unit
  val fold : (Extset.S.elt -> '-> 'a) -> Extset.S.t -> '-> 'a
  val for_all : (Extset.S.elt -> bool) -> Extset.S.t -> bool
  val exists : (Extset.S.elt -> bool) -> Extset.S.t -> bool
  val filter : (Extset.S.elt -> bool) -> Extset.S.t -> Extset.S.t
  val partition :
    (Extset.S.elt -> bool) -> Extset.S.t -> Extset.S.t * Extset.S.t
  val cardinal : Extset.S.t -> int
  val elements : Extset.S.t -> Extset.S.elt list
  val min_elt : Extset.S.t -> Extset.S.elt
  val max_elt : Extset.S.t -> Extset.S.elt
  val choose : Extset.S.t -> Extset.S.elt
  val split : Extset.S.elt -> Extset.S.t -> Extset.S.t * bool * Extset.S.t
  val change : (bool -> bool) -> Extset.S.elt -> Extset.S.t -> Extset.S.t
  val union : Extset.S.t -> Extset.S.t -> Extset.S.t
  val inter : Extset.S.t -> Extset.S.t -> Extset.S.t
  val diff : Extset.S.t -> Extset.S.t -> Extset.S.t
  val fold_left : ('-> Extset.S.elt -> 'b) -> '-> Extset.S.t -> 'b
  val fold2_inter :
    (Extset.S.elt -> '-> 'a) -> Extset.S.t -> Extset.S.t -> '-> 'a
  val fold2_union :
    (Extset.S.elt -> '-> 'a) -> Extset.S.t -> Extset.S.t -> '-> 'a
  val translate : (Extset.S.elt -> Extset.S.elt) -> Extset.S.t -> Extset.S.t
  val add_new : exn -> Extset.S.elt -> Extset.S.t -> Extset.S.t
  val is_num_elt : int -> Extset.S.t -> bool
  val of_list : Extset.S.elt list -> Extset.S.t
  val contains : Extset.S.t -> Extset.S.elt -> bool
  val add_left : Extset.S.t -> Extset.S.elt -> Extset.S.t
  val remove_left : Extset.S.t -> Extset.S.elt -> Extset.S.t
  val print :
    (Stdlib.Format.formatter -> Extset.S.elt -> unit) ->
    Stdlib.Format.formatter -> Extset.S.t -> unit
end