This is an implementation of Tarjan's Union-Find algorithm (Robert
E. Tarjan. Efficiency of a Good But Not Linear Set Union
Algorithm, JACM 22(2), 1975) in order to maintain an equivalence
relation.
This implementation is a port of the union-find package using the
ST monad transformer (instead of the IO monad).