Module type Parameters.VALUE

The values associated with each equivalence class in the union-find. Values have a lattice structure. For flexibility, the lattice value operations also take the a NODE (often the representative) as an extra argument. It can be ignored if irrelevant.

type node

the type of NODE.

type t

The type of values.

val equal : node -> t -> t -> bool

Equality on values.

val incl : node -> t -> t -> bool

incl x y is true if x is included (smaller than) y (i.e. x = meet x y or y = join x y).

val meet : node -> t -> t -> t

Intersection of values

val join : node -> t -> t -> t option

Union of values, only required for the joins. Can return None for a top value that does not need to be stored.

val pretty : node -> Stdlib.Format.formatter -> t -> unit

Pretty-printer