module Avl_kernel: sig end
This module allows computing the transitive reduction of a directed graph. Given a acyclic graph G = (X, E), the transitive reduction of G is the smallest graph G' = (X, E') such that the transitive closure of G' is G.
Reference:
A.V. Aho, M.R. Garey and J.D. Ullman (HP).
The Transitive Reduction of a Directed Graph.
SIAM Journal on Computing, 1(2), pp. 131137, June 1972.
Case of acyclic graphs

module type GRAPH_acyclic = sig end
GRAPH_acyclic
.
module Make_acyclic: functor (X : GRAPH_acyclic) > sig end
General case

type 'a
scc
'a scc
.val scc : unit > 'a scc
scc ()
returns a fresh value of type 'a scc
module type GRAPH = sig end
GRAPH
.
module Make: functor (X : GRAPH) > sig end