code: func Copy(dst Builder, src Graph) {
  	nodes := src.Nodes()
  	for _, n := range nodes {
  		dst.AddNode(n)
  	}
  	for _, u := range nodes {
  		for _, v := range src.From(u) {
  			dst.SetEdge(src.Edge(u, v))
  		}
  	}
  }
docs: // Copy copies nodes and edges as undirected edges from the source to the destination
  // without first clearing the destination. Copy will panic if a node ID in the source
  // graph matches a node ID in the destination.
  //
  // If the source is undirected and the destination is directed both directions will
  // be present in the destination after the copy is complete.
  //
  // If the source is a directed graph, the destination is undirected, and a fundamental
  // cycle exists with two nodes where the edge weights differ, the resulting destination
  // graph's edge weight between those nodes is undefined. If there is a defined function
  // to resolve such conflicts, an Undirect may be used to do this.