Up
# module Persistent

: sig

Persistent Graph Implementations.

#

module type S = sig

Signature of persistent graphs.

**Edges may be labeled or not**:

- Unlabeled: there is no label on edges
- Labeled: you have to provide a label implementation as a functor parameter.

**Vertices may be concrete or abstract**:

- Concrete: type of vertex labels and type of vertices are identified.
- Abstract: type of vertices is abstract (in particular it is not equal to type of vertex labels

**How to choose between concrete and abstract vertices for my graph
implementation**?

Usually, if you fall into one of the following cases, use abstract vertices:

- you cannot provide efficient comparison/hash functions for vertices; or
- you wish to get two different vertices with the same label.

In other cases, it is certainly easier to use concrete vertices.

end

end