函子 Strongly_connected_components.Make

module Make: 
functor (Id : Identifiable.S-> S with module Id := Id
参数
Id : Identifiable.S

module Id: Identifiable.S 
type directed_graph = Id.Set.t Id.Map.t 

如果 (a -> set) 存在于映射中,则表示从aset中的每个元素都存在边。假设没有边指向映射中未表示的顶点。

type component = 
| Has_loop of Id.t list
| No_loop of Id.t

val connected_components_sorted_from_roots_to_leaf : directed_graph ->
component array
val component_graph : directed_graph ->
(component * int list) array