module I: functor (
G
:
Sig.I
with type V.label = int
) >
S
with type graph = G.t
Classic Imperative Graphs
Parameters: 
G 
: 
Sig.I with type V.label = int


type
graph
val divisors : int > graph
divisors n
builds the graph of divisors.
Vertices are integers from 2
to n
. i
is connected to j
if
and only if i
divides j
.
Raises Invalid_argument
is n < 2
.
val de_bruijn : int > graph
de_bruijn n
builds the de Bruijn graph of order n
.
Vertices are bit sequences of length n
(encoded as their
interpretation as binary integers). The sequence xw
is connected
to the sequence wy
for any bits x
and y
and any bit sequence
w
of length n1
.
Raises Invalid_argument
is n < 1
or n > Sys.word_size1
.
val vertex_only : int > graph
vertex_only n
builds a graph with n
vertices and no edge.
val full : ?self:bool > int > graph
full n
builds a graph with n
vertices and all possible edges.
The optional argument self
indicates if loop edges should be added
(default value is true
).