Module Query.Binary_Lattice

type t
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val bottom : size:Units.In_bits.t -> t
val is_bottom : size:Units.In_bits.t -> t -> bool
val top : size:Units.In_bits.t -> t
val inter : size:Units.In_bits.t -> t -> t -> t
val join : size:Units.In_bits.t -> t -> t -> t
val pretty : size:Units.In_bits.t -> Stdlib.Format.formatter -> t -> unit
val widen : size:Units.In_bits.t -> previous:t -> t -> t
val includes : size:Units.In_bits.t -> t -> t -> bool
val includes_or_widen : size:Units.In_bits.t -> previous:t -> t -> bool * t
val singleton : size:Units.In_bits.t -> Z.t -> t
val is_singleton : size:Units.In_bits.t -> t -> Z.t option
val is_empty : size:Units.In_bits.t -> t -> bool
val fold_crop_signed : size:Units.In_bits.t -> t -> inf:Z.t -> sup:Z.t -> 'a -> (Z.t -> 'a -> 'a) -> 'a
val fold_crop_unsigned : size:Units.In_bits.t -> t -> inf:Z.t -> sup:Z.t -> 'a -> (Z.t -> 'a -> 'a) -> 'a
val to_known_bits : size:Units.In_bits.t -> t -> Z.t * Z.t
val to_unsigned_interval : size:Units.In_bits.t -> t -> Z.t * Z.t
val to_signed_interval : size:Units.In_bits.t -> t -> Z.t * Z.t