Module type MultiGraph.P


module type P = sig .. end
Interface for persistent implementations of labeled directed multi-graphs.

include MultiGraph.G
val empty : t
The empty multi-graph.
val add_vertex : t -> Vertex.t -> t
add_vertex g v adds the vertex v to the multi-graph g.
Precondition v is not already contained in g.

val del_vertex : t -> Vertex.t -> t
del_vertex g v removes the vertex v from the multi-graph g. All edges e with source E.src e or target E.tgt e equal to v are also removed from g.
Precondition v is contained in g.

val add_edge : t -> Edge.t -> t
add_edge g e adds the edge e to the multi-graph g. The source E.src e and target E.tgt e vertices of e are also added to g if they are not already in g.
Precondition e is not already contained in g.

val del_edge : t -> Edge.t -> t
del_edge g e removes the edge e from the multi-graph g.
Precondition e is contained in g.