This implementation of Kruskal's algorithm will return two iterators of vertex pairs: the first iterator is a Minimal Spanning Tree in increasing weight order, while the second iterator gives all the non-included
The fundamental cycle of a non-tree edge (s, t) (as returned by cyclesIterator): the edge itself plus the tree path connecting its endpoints, oriented so boundary(cycleToChain(edge)) = 0. s/t are guaranteed to lie in the same component: lrList's own partitionMap only routes an edge to cyclesIterator once find has confirmed its endpoints already share a root.
The fundamental cycle of a non-tree edge (s, t) (as returned by cyclesIterator): the edge itself plus the tree path connecting its endpoints, oriented so boundary(cycleToChain(edge)) = 0. s/t are guaranteed to lie in the same component: lrList's own partitionMap only routes an edge to cyclesIterator once find has confirmed its endpoints already share a root.