sig
  type t
  type attr
  type domain
  type elt
  type event
  val create :
    ?name:string -> Facile.Var.BASICFD.domain -> Facile.Var.BASICFD.t
  val interval :
    ?name:string ->
    Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.t
  val array :
    ?name:string ->
    int ->
    Facile.Var.BASICFD.elt ->
    Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.t array
  val elt : Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.t
  val is_var : Facile.Var.BASICFD.t -> bool
  val is_bound : Facile.Var.BASICFD.t -> bool
  val value :
    Facile.Var.BASICFD.t ->
    (Facile.Var.BASICFD.attr, Facile.Var.BASICFD.elt) Facile.Var.concrete
  val min : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt
  val max : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt
  val min_max :
    Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt * Facile.Var.BASICFD.elt
  val elt_value : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt
  val int_value : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt
  val size : Facile.Var.BASICFD.t -> int
  val member : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> bool
  val id : Facile.Var.BASICFD.t -> int
  val name : Facile.Var.BASICFD.t -> string
  val compare : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.t -> int
  val equal : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.t -> bool
  val fprint : Pervasives.out_channel -> Facile.Var.BASICFD.t -> unit
  val fprint_array :
    Pervasives.out_channel -> Facile.Var.BASICFD.t array -> unit
  val unify : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> unit
  val refine : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.domain -> unit
  val refine_low : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> unit
  val refine_up : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> unit
  val refine_low_up :
    Facile.Var.BASICFD.t ->
    Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.elt -> unit
  val on_refine : Facile.Var.BASICFD.event
  val on_subst : Facile.Var.BASICFD.event
  val on_min : Facile.Var.BASICFD.event
  val on_max : Facile.Var.BASICFD.event
  val delay :
    Facile.Var.BASICFD.event list ->
    Facile.Var.BASICFD.t -> ?waking_id:int -> Facile.Cstr.t -> unit
  val int : Facile.Var.BASICFD.elt -> Facile.Var.BASICFD.t
  val subst : Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> unit
  val unify_cstr :
    Facile.Var.BASICFD.t -> Facile.Var.BASICFD.elt -> Facile.Cstr.t
end