sig
  type t
  type domain = Domain.t
  type elt = Domain.elt
  type event
  val dom : t -> domain
  val on_refine : event
  val on_subst : event
  val on_min : event
  val on_max : event
  val fprint : out_channel -> t -> unit
  val min : t -> elt
  val max : t -> elt
  val member : t -> elt -> bool
  val id : t -> int
  val constraints_number : t -> int
  val size : t -> int
end