This module provides an implementation of Tarjan's algorithm. This algorithm computes the strong connex composants of a directed graph (SCC). A SCC of a graph $G = (X, E)$ is a subset of $X$ such that for every pair of nodes $x_1$ and $x_2$ in $X$ there exists a path from the former to the latter in $G$. The SCCs of $G$ form a partition of $X$.
The Tarjan's algorithm has a time complexity in $O(n)$ (where $n$ is the number of nodes of the input graph).
Functions provided by this module are not reentering thread safe as long
as at most one thread operates on the same graph at the same time.
module type GRAPH =
functor (X : GRAPH) -> sig end