Vertices have type V.t and are labeled with type V.label (note that an implementation may identify the vertex with its label)

Vertices are COMPARABLE.

type t = commit
include Graph.Sig.COMPARABLE with type t := t
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool

Vertices are labeled.

type label
val create : label -> t
val label : t -> label