### Basic operations over graphs

`module type S = sig ... end`
`module Make (B : Builder.S) : S with type g = B.G.t`

Basic operations over graphs

`module P (G : Sig.P) : S with type g = G.t`

Basic operations over persistent graphs

`module I (G : Sig.I) : S with type g = G.t`

Basic operations over imperative graphs

### Choose

`module Choose (G : sig ... end) : sig ... end`

Choose an element in a graph

### Neighbourhood

`module Neighbourhood (G : sig ... end) : sig ... end`

Neighbourhood of vertex / vertices