Module Pulselib.PulseSatUnsat

module F = Stdlib.Format
type unsat_info = {
  1. reason : unit -> string;
  2. source : string * int * int * int;
}
type 'a t =
  1. | Unsat of unsat_info
  2. | Sat of 'a
include Ppx_compare_lib.Equal.S1 with type 'a t := 'a t
val equal : 'a Base__Ppx_compare_lib.equal -> 'a t Base__Ppx_compare_lib.equal
module Types : sig ... end

for opening to get Sat and Unsat in the namespace

val pp_unsat_info : F.formatter -> unsat_info -> unit
val log_unsat : unsat_info -> unit
val pp : (F.formatter -> 'a -> unit) -> F.formatter -> 'a t -> unit
val map : ('a -> 'b) -> 'a t -> 'b t
val bind : ('a -> 'b t) -> 'a t -> 'b t
val sat : 'a t -> 'a option
val of_option : unsat_info -> 'a option -> 'a t
val list_fold : 'a list -> init:'accum -> f:('accum -> 'a -> 'accum t) -> 'accum t
val to_list : 'a t -> 'a list
val filter : 'a t list -> 'a list

keep only Sat _ elements

val seq_fold : 'a Stdlib.Seq.t -> init:'accum -> f:('accum -> 'a -> 'accum t) -> 'accum t
module Import : sig ... end
val log_source_info : bool IStdlib.IStd.ref

whether to print the (infer) source location on Unsat; set to false in unit tests