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