Module Union_Find.Imperative

Imperative Union Find structures. These are mutable and can only grow (i.e. add new equalities), using union by size and lazy path compression.

Nodes

Functors used to build nodes out of elements, relations and values

Create a simple node by wrapping an elt with a pointer

Same as MakeNode, but also remembers all built node in a hash-table so we can check if elements already have an associated node

This creates a valued node by wrapping an elt with a pointer (same as MakeSimpleNode), but here representatives also have a Value.t attached.

Same as MakeValuedNode, but also remembers all built node in a hash-table so we can check if elements already have an associated node

Union find structures

Imperative union find

Same as GenericRelationalValued, but without the values