functor (G : Sig.I->
  sig
    type graph = G.t
    type vertex = G.vertex
    type edge = G.edge
    type edge_label = G.E.label
    val merge_vertex : Merge.I.graph -> Merge.I.vertex list -> unit
    val merge_edges_e :
      ?src:Merge.I.vertex ->
      ?dst:Merge.I.vertex -> Merge.I.graph -> Merge.I.edge list -> unit
    val merge_edges_with_label :
      ?src:Merge.I.vertex ->
      ?dst:Merge.I.vertex ->
      ?label:Merge.I.edge_label ->
      Merge.I.graph -> Merge.I.edge_label -> unit
    val merge_isolabelled_edges : Merge.I.graph -> unit
    val merge_ends :
      ?strict:bool ->
      ?specified_vertex:Merge.I.vertex -> Merge.I.graph -> unit
    val merge_starts :
      ?strict:bool ->
      ?specified_vertex:Merge.I.vertex -> Merge.I.graph -> unit
    val merge_scc :
      ?loop_killer:bool ->
      ?specified_vertex:(Merge.I.vertex list -> Merge.I.vertex) ->
      Merge.I.graph -> unit
  end