module 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 not forbidden by the datatype
library
module O: Datatype.Set
type
tt = private
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