code: func (c Counter) SetBatchFunc(key interface{}, init func(), f func() uint64) {
  	gm.Lock()
  	defer gm.Unlock()
  
  	cm.Lock()
  	defer cm.Unlock()
  
  	counterFuncs[string(c)] = f
  	if _, ok := inits[key]; !ok {
  		inits[key] = init
  	}
  }
docs: // SetBatchFunc sets the counter's value to the lazily-called return value of
  // the given function, with an additional initializer function for a related
  // batch of counters, all of which are keyed by an arbitrary value.