sig
  val subset : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
  val cardinal : Var.SetFd.t -> Var.Fd.t
  val smallest : Var.SetFd.t -> Var.Fd.t
  val union : Var.SetFd.t -> Var.SetFd.t -> Var.SetFd.t
  val inter : Var.SetFd.t -> Var.SetFd.t -> Var.SetFd.t
  val all_disjoint : Var.SetFd.t array -> Cstr.t
  val disjoint : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
  val inside : int -> Var.SetFd.t -> unit
  val outside : int -> Var.SetFd.t -> unit
  val mem : Var.Fd.t -> Var.SetFd.t -> Cstr.t
  val inf_min : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
  val order : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
  val order_with_card :
    Var.SetFd.t -> Var.Fd.t -> Var.SetFd.t -> Var.Fd.t -> Cstr.t
  val member : Var.SetFd.t -> SetDomain.elt list -> Cstr.t
  val sum_weight : Var.SetFd.t -> (int * int) list -> Var.Fd.t
  val atmost1 : Var.SetFd.t array -> int -> unit
end