functor (Gf : Sig.G) ->
functor (Gt : Sig.P) ->
functor
(M : sig
val vertex : Gt.t -> Gf.V.t -> Gt.V.t * Gt.t
val edge : Gt.t -> Gt.V.t -> Gt.V.t -> Gt.t
end) ->
sig val copy : Gf.t -> Gt.t end