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