code: func (v *TreeVertex) replace(id string, r *TreeVertex) {
  	if v.Id == id {
  		v.Descendants = r.Descendants
  		return
  	}
  	for _, u := range v.Descendants {
  		u.replace(id, r)
  	}
  }
docs: // replace replaces the sub-tree of the vertex who's id is the given id
  // with a sub-tree who's root vertex is r.