Abstract_interp.Make_Hashconsed_Lattice_SetSee 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)
module V : Hptmap.Id_Datatypemodule O = Setinclude Lattice_type.AI_Lattice_with_cardinal_one with type t := tinclude Lattice_type.Bounded_Join_Semi_Lattice with type t := tinclude Lattice_type.Join_Semi_Lattice with type t := tdatatype of element of the lattice
include Datatype.S with type t := tinclude Datatype.S_no_copy with type t := tinclude Datatype.Ty with type t := tval 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 : Stdlib.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
include Lattice_type.With_Cardinal_One with type t := tval cardinal_zero_or_one : t -> boolinclude Lattice_type.With_Intersects with type t := tval empty : t