Functor Abstract_interp.Make_Hashconsed_Lattice_Set

module Make_Hashconsed_Lattice_Set: 
functor (V : Hptset.Id_Datatype) ->
functor (O : Hptset.S with type elt = V.t) -> Lattice_Set with module O = O
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 not forbidden by the datatype library
Parameters:
V : Hptset.Id_Datatype
O : Hptset.S with type elt = V.t

module O: Datatype.Set 
type tt = private 
| Set of O.t
| Top
include Abstract_interp.Lattice
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 project : t -> O.t
val mem : O.elt -> t -> bool