sig
  type t = Unconstrained | Real of Dom.t | Bitvector of int
  val mk_real : Dom.t -> Var.Cnstrnt.t
  val mk_bitvector : int -> Var.Cnstrnt.t
  val pp : Var.Cnstrnt.t Pretty.printer
  exception Empty
  val sub : Var.Cnstrnt.t -> Var.Cnstrnt.t -> bool
  val inter : Var.Cnstrnt.t -> Var.Cnstrnt.t -> Var.Cnstrnt.t
end