函子 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) 屬於這個 map,表示從 aset 的每個元素都有邊。假設沒有邊指向 map 中未表示的頂點。

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