sig
  module S :
    sig
      type t = Fcl_domain.t
      val empty : Fcl_setDomain.S.t
      val is_empty : Fcl_setDomain.S.t -> bool
      val mem : int -> Fcl_setDomain.S.t -> bool
      val add : int -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val singleton : int -> Fcl_setDomain.S.t
      val remove : int -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val union : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val inter : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val diff : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val compare : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> int
      val equal : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> bool
      val subset : Fcl_setDomain.S.t -> Fcl_setDomain.S.t -> bool
      val iter : (int -> unit) -> Fcl_setDomain.S.t -> unit
      val cardinal : Fcl_setDomain.S.t -> int
      val elements : Fcl_setDomain.S.t -> int list
      val min_elt : Fcl_setDomain.S.t -> int
      val max_elt : Fcl_setDomain.S.t -> int
      val choose : Fcl_setDomain.S.t -> int
      val remove_up : int -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
      val remove_low : int -> Fcl_setDomain.S.t -> Fcl_setDomain.S.t
    end
  type elt = Fcl_setDomain.S.t
  type t
  val elt_of_list : int list -> Fcl_setDomain.elt
  val interval : Fcl_setDomain.elt -> Fcl_setDomain.elt -> Fcl_setDomain.t
  val size : Fcl_setDomain.t -> int
  val min : Fcl_setDomain.t -> Fcl_setDomain.elt
  val max : Fcl_setDomain.t -> Fcl_setDomain.elt
  val min_max : Fcl_setDomain.t -> Fcl_setDomain.elt * Fcl_setDomain.elt
  val fprint_elt : Pervasives.out_channel -> Fcl_setDomain.elt -> unit
  val fprint : Pervasives.out_channel -> Fcl_setDomain.t -> unit
  val mem : Fcl_setDomain.elt -> Fcl_setDomain.t -> bool
  val included : Fcl_setDomain.t -> Fcl_setDomain.t -> bool
  val iter : (Fcl_setDomain.elt -> 'a) -> Fcl_setDomain.t -> 'a
  val values : Fcl_setDomain.t -> Fcl_setDomain.elt list
  val intersection :
    Fcl_setDomain.elt -> Fcl_setDomain.elt -> Fcl_setDomain.elt
  val strictly_inf : Fcl_setDomain.elt -> Fcl_setDomain.elt -> bool
  val compare_elt : Fcl_setDomain.elt -> Fcl_setDomain.elt -> int
  val unsafe_interval :
    Fcl_setDomain.elt -> Fcl_setDomain.elt -> Fcl_setDomain.t
  val remove_up : Fcl_setDomain.elt -> Fcl_setDomain.t -> Fcl_setDomain.t
  val remove_low : Fcl_setDomain.elt -> Fcl_setDomain.t -> Fcl_setDomain.t
end