code: func (m *ReferenceMap) Referrers(v dag.Vertex) []dag.Vertex {
  	rn, ok := v.(GraphNodeReferenceable)
  	if !ok {
  		return nil
  	}
  	sp, ok := v.(GraphNodeSubPath)
  	if !ok {
  		return nil
  	}
  
  	var matches []dag.Vertex
  	for _, addr := range rn.ReferenceableAddrs() {
  		key := m.mapKey(sp.Path(), addr)
  		referrers, ok := m.edges[key]
  		if !ok {
  			continue
  		}
  
  		// If the referrer set includes our own given vertex then we skip,
  		// since we don't want to return self-references.
  		selfRef := false
  		for _, p := range referrers {
  			if p == v {
  				selfRef = true
  				break
  			}
  		}
  		if selfRef {
  			continue
  		}
  
  		matches = append(matches, referrers...)
  	}
  
  	return matches
  }
docs: // Referrers returns the set of vertices that refer to the given vertex.