# Functor Coloring.Mark

    module Mark: functor (G : GM) -> sig .. end

Provide a function for `k`-coloring a graph with integer marks. The provided function is more efficient that the one provided by functor `Coloring.Make` above.

Parameters: |
`G` | : | `GM`

    exception NoColoring

    val coloring : Coloring.G.t -> int -> unit

`coloring g k` colors the nodes of graph `g` using k colors, assigning the marks integer values between 1 and k. raises `NoColoring` when there is no possible coloring.

The graph marks may be partially set before starting; the meaning of initial values is as follows:

- 0: a node to be colored
- any value between 1 and k: a color already assigned
- any value greater than k: a node to be ignored

Raises `NoColoring` if `g` cannot be `k`-colored.