module NodeSet:Hptset.S
with type elt = Node.t
include Datatype.S_with_collections
include Hptset.S_Basic_Compare
The datatype of sets.
val contains_single_elt : t -> elt option
val intersects : t -> t -> bool
intersects s1 s2
returns true
if and only if s1
and s2
have an element in common
type
action =
| |
Neutral |
| |
Absorbing |
| |
Traversing of |
val merge : cache:Hptmap_sig.cache_type ->
symmetric:bool ->
idempotent:bool ->
decide_both:(elt -> bool) ->
decide_left:action -> decide_right:action -> t -> t -> t
type 'a
shape
Shape of the set, ie. the unique shape of its OCaml value.
val shape : t -> unit shape
Export the shape of the set.
val from_shape : 'a shape -> t
Build a set from another elt
-indexed map or set.
val partition_with_shape : 'a shape -> t -> t * t
partition_with_shape shape set
returns two sets inter, diff
that are
respectively the intersection and the difference between set
and
shape
.
val fold2_join_heterogeneous : cache:Hptmap_sig.cache_type ->
empty_left:('a shape -> 'b) ->
empty_right:(t -> 'b) ->
both:(elt -> 'a -> 'b) ->
join:('b -> 'b -> 'b) -> empty:'b -> t -> 'a shape -> 'b
val replace : elt shape -> t -> bool * t
replace shape set
replaces the elements of set
according to shape
.
The returned boolean indicates whether the set has been modified; it is
false when the intersection between shape
and set
is empty.
val clear_caches : unit -> unit
Clear all the caches used internally by the functions of this module. Those caches are not project-aware, so this function must be called at least each a project switch occurs.
val pretty_debug : t Pretty_utils.formatter