code: func Disjoint(existing, additional []string) []string {
  	set := make(map[string]bool, len(existing)+len(additional))
  	result := make([]string, 0, len(additional))
  	for _, proto := range existing {
  		set[proto] = true
  	}
  
  	for _, proto := range additional {
  		if set[proto] {
  			continue
  		}
  		set[proto] = true
  		result = append(result, proto)
  	}
  	return result
  }
docs: // Disjoint takes a slice of existing .proto files, and a slice of new
  // .proto files. It returns a slice containing the subset of the new
  // .proto files with distinct paths not in the first set.