sig
type 'a p_graph = ('a * 'a) list
type 'a s_graph = ('a * 'a list) list
val p_to_s_graph : 'a Graph.p_graph -> 'a Graph.s_graph
val s_to_p_graph : 'a Graph.s_graph -> 'a Graph.p_graph
val p_transpose : 'a Graph.p_graph -> 'a Graph.p_graph
val warshall : 'a Graph.s_graph -> 'a Graph.s_graph
val top_sort : 'a Graph.s_graph -> 'a list
end