Functor Persistent.Digraph.Abstract


module Abstract: 
functor (V : sig
type t 
end) -> Sig.P with type V.label = V.t
Abstract Persistent Directed Unlabeled Graphs
Parameters:
V : sig type t end

include Sig.G
val empty : t
The empty graph.
val add_vertex : t -> vertex -> t
add_vertex g v adds the vertex v from the graph g. Just return g if v is already in g.
val remove_vertex : t -> vertex -> t
remove g v removes the vertex v from the graph g (and all the edges going from v in g). Just return g if v is not in g.
val add_edge : t -> vertex -> vertex -> t
add_edge g v1 v2 adds an edge from the vertex v1 to the vertex v2 in the graph g. Add also v1 (resp. v2) in g if v1 (resp. v2) is not in g. Just return g if this edge is already in g.
val add_edge_e : t -> edge -> t
add_edge_e g e adds the edge e in the graph g. Add also E.src e (resp. E.dst e) in g if E.src e (resp. E.dst e) is not in g. Just return g if e is already in g.
val remove_edge : t -> vertex -> vertex -> t
remove_edge g v1 v2 removes the edge going from v1 to v2 from the graph g. Raise Invalid_argument if v1 or v2 are not in g. Just return g if this edge is not in g.
val remove_edge_e : t -> edge -> t
remove_edge_e g e removes the edge e from the graph g. Raise Invalid_argument if E.src e or E.dst e are not in g. Just return g if e is not in g.