Module NullByteSet.MustMaySet

include sig ... end
type t = MustSet.t * MaySet.t
val is_top : t -> bool
val top : unit -> t
val is_bot : t -> bool
val bot : unit -> t
val narrow : t -> t -> t
val widen : t -> t -> t
val meet : t -> t -> t
val join : t -> t -> t
val leq : t -> t -> bool
val expand_fst : bool
val expand_snd : bool
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val relift : t -> t
val tag : 'a -> 'b
val show : (MustSet.t * MaySet.t) -> string
val name : unit -> string
val pretty : unit -> (MustSet.t * MaySet.t) -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> (MustSet.t * MaySet.t) -> unit
val to_yojson : (MustSet.t * MaySet.t) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (MustSet.t * MaySet.t) QCheck.arbitrary
val pretty_diff : unit -> (t * t) -> Lattice.Pretty.doc
module Set : sig ... end
type mode =
  1. | Definitely
  2. | Possibly
val empty : unit -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val full_set : unit -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val is_empty : mode -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t) -> bool
val min_elem : mode -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.M.t) -> MustSet.M.elt
val min_elem_precise : ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.M.t) -> bool
val mem : mode -> MustSet.elt -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t) -> bool
val interval_mem : mode -> (MustSet.M.elt * Z.t) -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * 'a) -> bool
val remove : mode -> MustSet.M.elt -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.M.t) -> Z.t -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.M.t
val add : mode -> MustSet.elt -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t) -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val add_list : mode -> MaySet.elt list -> ('a * MaySet.t) -> 'b * MaySet.t
val add_interval : ?maxfull:Z.t option -> mode -> (MaySet.elt * Z.t) -> (MaySet.t * MaySet.t) -> MaySet.t * MaySet.t
val remove_interval : mode -> (Z.t * Z.t) -> Z.t -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * 'a) -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * 'b
val add_all : mode -> ('a * 'b) -> 'c * MaySet.t
val remove_all : mode -> ('a * MaySet.t) -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val is_full_set : mode -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t) -> bool
val get_set : mode -> ('a * 'b) -> 'c
val elements : ?max_size:Z.t -> ?min_size:'a -> mode -> ('b * MaySet.M.t) -> MaySet.M.elt list
val union_mays : ('a * MaySet.t) -> ('b * MaySet.t) -> 'c * MaySet.t
val precise_singleton : MustSet.elt -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val precise_set : Set.t -> t
val make_all_must : unit -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t
val may_can_benefit_from_filter : ('a * MaySet.t) -> bool
val exists : mode -> (MaySet.elt -> bool) -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * MaySet.t) -> bool
val filter : ?min_size:Z.t -> ?max_size:Z.t -> (MaySet.M.elt -> bool) -> (MustSet.t * MaySet.M.t) -> t
val filter_musts : (MustSet.M.elt -> bool) -> Z.t -> ([ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * 'a) -> [ `Lifted of SetDomain.Make(IntOps.BigIntOps).t | `Top ] * 'b