code: func (g *AcyclicGraph) Ancestors(v Vertex) (*Set, error) {
  	s := new(Set)
  	start := AsVertexList(g.DownEdges(v))
  	memoFunc := func(v Vertex, d int) error {
  		s.Add(v)
  		return nil
  	}
  
  	if err := g.DepthFirstWalk(start, memoFunc); err != nil {
  		return nil, err
  	}
  
  	return s, nil
  }
docs: // Returns a Set that includes every Vertex yielded by walking down from the
  // provided starting Vertex v.