code: func (v *TreeVertex) Clone() *TreeVertex {
  	var descendants []*TreeVertex
  	for _, u := range v.Descendants {
  		descendants = append(descendants, u.Clone())
  	}
  	copy := &TreeVertex{
  		Id:          v.Id,
  		Descendants: descendants,
  		Data:        v.Data,
  	}
  	return copy
  }
docs: // Clone clones the tree who's root vertex is the current vertex.