### Signature for ordered and hashable types

`module type ANY_TYPE = sig ... end`

Signature with only an abstract type.

`module type ORDERED_TYPE = sig ... end`

Signature equivalent to `Set.OrderedType`.

`module type ORDERED_TYPE_DFT = sig ... end`

Signature equivalent to `Set.OrderedType` with a default value.

`module type HASHABLE = sig ... end`

Signature equivalent to `Hashtbl.HashedType`.

`module type COMPARABLE = sig ... end`

Signature merging `ORDERED_TYPE` and `HASHABLE`.

### Signatures for graph implementations

`module type VERTEX = sig ... end`

Signature for vertices.

`module type EDGE = sig ... end`

Signature for edges.

`module type G = sig ... end`

Common signature for all graphs.

`module type P = sig ... end`

Signature for persistent (i.e. immutable) graph.

`module type I = sig ... end`

Signature for imperative (i.e. mutable) graphs.

`module type WEIGHT = sig ... end`

Signature for edges' weights.

`module type MARK = sig ... end`

Signature for marks on vertices.

`module type IM = sig ... end`

Signature for imperative graphs with marks on vertices.