Frama-C API - Make_Hashconsed_Lattice_Set
See e.g. base.ml and locations.ml to see how this functor should be applied. The O
module passed as argument is the same as O
in the result. It is passed here to avoid having multiple modules calling Hptset.Make
on the same argument (which is forbidden by the datatype library, and would cause hashconsing problems)
Parameters
module V : Hptmap.Id_Datatype
Signature
module O = Set
include Lattice_type.AI_Lattice_with_cardinal_one with type t := t
include Lattice_type.Bounded_Join_Semi_Lattice with type t := t
include Lattice_type.Join_Semi_Lattice with type t := t
datatype of element of the lattice
include Datatype.S with type t := t
include Datatype.S_no_copy with type t := t
include Datatype.Ty with type t := t
val packed_descr : Structural_descr.pack
Packed version of the descriptor.
val reprs : t list
List of representants of the descriptor.
val hash : t -> int
Hash function: same spec than Hashtbl.hash
.
val pretty : Stdlib.Format.formatter -> t -> unit
Pretty print each value in an user-friendly way.
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
mem_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 : t
smallest element
include Lattice_type.With_Top with type t := t
val top : t
largest element
include Lattice_type.With_Cardinal_One with type t := t
val cardinal_zero_or_one : t -> bool
include Lattice_type.With_Intersects with type t := t
val empty : t