functor (G : GM-> sig val coloring : G.t -> int -> unit end