Functor Abstract_interp.Make_Hashconsed_Lattice_Set

module Make_Hashconsed_Lattice_Set: 
functor (V : Hptmap.Id_Datatype-> 
functor (Set : Hptset.S with type elt = V.t-> Lattice_type.Lattice_Set with module O = 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:
V : Hptmap.Id_Datatype
Set : Hptset.S with type elt = V.t

module O: Lattice_type.Hptset 
type t = private 
| Set of O.t
| Top
include Lattice_type.AI_Lattice_with_cardinal_one
val inject_singleton : O.elt -> t
val inject : O.t -> t
val empty : t
val apply2 : (O.elt -> O.elt -> O.elt) ->
t ->
t -> t
val apply1 : (O.elt -> O.elt) -> t -> t
val fold : (O.elt -> 'a -> 'a) -> t -> 'a -> 'a
val iter : (O.elt -> unit) -> t -> unit
val exists : (O.elt -> bool) -> t -> bool
val for_all : (O.elt -> bool) -> t -> bool
val filter : (O.elt -> bool) -> t -> t
val project : t -> O.t
val mem : O.elt -> t -> bool