Module Graph.Make

Parameters

module S : Spec

Signature

module NodeMap : sig ... end
type graph = (S.edge * S.node) list NodeMap.t
val empty : graph
val add_node : 'a list NodeMap.t -> NodeMap.key -> 'a list NodeMap.t
val add_edge : (S.edge * S.node) list NodeMap.t -> NodeMap.key -> S.node -> S.edge -> (S.edge * S.node) list NodeMap.t
val neighbors : 'a list NodeMap.t -> NodeMap.key -> 'a list
val map : ('a * 'b) list NodeMap.t -> ('a -> 'c) -> ('c * 'b) list NodeMap.t
val find_node : NodeMap.key -> 'a NodeMap.t -> 'a option
val keys : 'a NodeMap.t -> NodeMap.key list
val edges : 'a list NodeMap.t -> 'a list