Module Dunolint.Trilang

type t =
  1. | True
  2. | False
  3. | Undefined
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_enumerate_lib.Enumerable.S with type t := t
val all : t list
val sexp_of_t : t -> Sexplib0.Sexp.t
val const : Base.bool -> t
val eval : 'a Blang.t -> f:('a -> t) -> t
val disjunction : t Base.list -> t

If there exists a True value, that is the returned value for the list. Otherwise, this requires all values to be False to return false, and is Undefined in the remaining cases. This returns false on an empty list.

val exists : 'a Base.list -> f:('a -> t) -> t

Same as disjunction but applies a f function to the elements of the input list as the values are needed. If there exists a True value, that is the returned value for the list. Otherwise, this requires all values to be False to return false, and is Undefined in the remaining cases.

The function f is called on the elements of the input list from left to right. If the result of the evaluation is determined before visiting the end of the input, f won't be called on the remaining values. Such case happens when f returns True for one of the elements.

val conjunction : t Base.list -> t

If there exists a False value, that is the returned value for the list. Otherwise, this requires all values to be True to return true, and is Undefined in the remaining cases. This returns true on an empty list.

val for_all : 'a Base.list -> f:('a -> t) -> t

Same as conjunction but builds the input by applying a f function on a list of input.

The function f is called on the elements of the input list from left to right. If the result of the evaluation is determined before visiting the end of the input, f won't be called on the remaining values. Such case happens when f returns False for one of the elements.