code: func datacentersFunc(b *Brain, used, missing *dep.Set) func(ignore ...bool) ([]string, error) {
  	return func(i ...bool) ([]string, error) {
  		result := []string{}
  
  		var ignore bool
  		switch len(i) {
  		case 0:
  			ignore = false
  		case 1:
  			ignore = i[0]
  		default:
  			return result, fmt.Errorf("datacenters: wrong number of arguments, expected 0 or 1"+
  				", but got %d", len(i))
  		}
  
  		d, err := dep.NewCatalogDatacentersQuery(ignore)
  		if err != nil {
  			return result, err
  		}
  
  		used.Add(d)
  
  		if value, ok := b.Recall(d); ok {
  			return value.([]string), nil
  		}
  
  		missing.Add(d)
  
  		return result, nil
  	}
  }
docs: // datacentersFunc returns or accumulates datacenter dependencies.