Imperative.GenericRelationalValuedSourceImperative union find
('a, 'b) Relation.t on edges between elements and representativesPerforms union by size, and path compression in find.
This is fully imperative and mutable.
'a Elt.tunion between related nodesmodule Node : Parameters.UF_NODE_WITH_VALUEinclude Signatures.IMPERATIVE_GENERIC_RELATIONAL
with type 'a t = 'a Node.t
with type ('a, 'b) relation = ('a, 'b) Node.Relation.ttype 'a node_through_relation = | NodeThoughRelation : 'b t * ('a, 'b) relation -> 'a node_through_relationExistential wrapper for returning the representative
Find the representative of a node, and the associated relation
check_related a b returns the relation between a and b if they are in the same class.
type 'a value_through_relation = | ValueThroughRelation : 'b value
* ('a, 'b) relation -> 'a value_through_relationExistential wrapper for returning the value
type 'a node_and_value_through_relation = | NodeValueThroughRelation : 'b t
* 'b value
* ('a, 'b) relation -> 'a node_and_value_through_relationExistential wrapper for returning the value and the representative
Find the value of a node, and the associated relation
Find the value and representative of a node, and the associated relation