Module Three


module Three: sig  end
Three-valued datatype.
Author(s): Harald Ruess


type t =
| Yes
| No
| X
There is an implicit partial ordering with Yes < X and No < X.

val is_sub : t -> t -> bool
is_sub u v holds if either u = v or u < v.
Parameters:
a : t
b : t
val inter : t -> t -> t option
inter u v evaluates to Some(w) if both is_sub w u and is_sub w v; otherwise None is returned.
Parameters:
? : t
? : t
val union : t -> t -> t
union u v evaluates to w if both is_sub u w and is_sub v w holds.
Parameters:
a : t
b : t
val is_disjoint : t -> t -> bool
is_disjoint u v holds iff the inter u v is None.
Parameters:
a : t
b : t
val pp : Format.formatter -> t -> unit
Pretty-printing
Parameters:
fmt : Format.formatter
three : t