sig
  val boolean : ?delay_on_negation:bool -> Cstr.t -> Var.Fd.t
  val cstr : ?delay_on_negation:bool -> Cstr.t -> Var.Fd.t -> Cstr.t
  val ( &&~~ ) : Cstr.t -> Cstr.t -> Cstr.t
  val ( ||~~ ) : Cstr.t -> Cstr.t -> Cstr.t
  val ( =>~~ ) : Cstr.t -> Cstr.t -> Cstr.t
  val ( <=>~~ ) : Cstr.t -> Cstr.t -> Cstr.t
  val xor : Cstr.t -> Cstr.t -> Cstr.t
  val not : Cstr.t -> Cstr.t
end