Function_Froms.DepsOrUnassignedtype deps_or_unassigned = | DepsBottomBottom of the lattice, never bound inside a memory state at a valid location. (May appear for bases for which the validity does not start at 0, currently only NULL.)
*)| UnassignedLocation has never been assigned
*)| AssignedFrom of Deps.tLocation guaranteed to have been overwritten, its contents depend on the Deps.t value
| MaybeAssignedFrom of Deps.tLocation may or may not have been overwritten
*)The lattice is DepsBottom <= Unassigned, DepsBottom <= AssignedFrom z, Unassigned <= MaybeAssignedFrom and AssignedFrom z <= MaybeAssignedFrom z.
include Lmap_bitwise.With_default with type t = deps_or_unassignedinclude Lattice_type.Bounded_Join_Semi_Lattice with type t = deps_or_unassignedinclude Lattice_type.Join_Semi_Lattice with type t = deps_or_unassigneddatatype of element of the lattice
include Datatype.S with type t = deps_or_unassignedinclude Datatype.S_no_copy with type t = deps_or_unassignedval packed_descr : Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val pretty : Format.formatter -> t -> unitPretty print each value in an user-friendly way.
val mem_project : (Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
val bottom : tsmallest element
include Lattice_type.With_Top with type t := tval top : tlargest element
val default : tval extract_data : t -> Locations.Zone.tval extract_indirect : t -> Locations.Zone.tval may_be_unassigned : t -> boolcompose d1 d2 is the sequential composition of d1 after d2, ie. the dependencies needed to execute d1 after having executed d2. It is computed as d1 if d1 = AssignedFrom _ (as executing d1 completely overwrites what d2 wrote), and as a partial join between d1 and d2 in the other cases.
val pretty_precise : Format.formatter -> t -> unitval to_zone : t -> Locations.Zone.t