code: func (s *inMemoryStore) Incr(ctx context.Context, h types.Metric, resetTime time.Time, fieldVals []interface{}, delta interface{}) {
  	if resetTime.IsZero() {
  		resetTime = clock.Now(ctx)
  	}
  	t := target.Get(ctx)
  
  	m := s.getOrCreateData(h)
  	m.lock.Lock()
  	defer m.lock.Unlock()
  
  	c := m.get(fieldVals, t, resetTime)
  
  	switch m.ValueType {
  	case types.CumulativeDistributionType:
  		d, ok := delta.(float64)
  		if !ok {
  			panic(fmt.Errorf("Incr got a delta of unsupported type (%v)", delta))
  		}
  		v, ok := c.Value.(*distribution.Distribution)
  		if !ok {
  			v = distribution.New(h.(types.DistributionMetric).Bucketer())
  			c.Value = v
  		}
  		v.Add(float64(d))
  
  	case types.CumulativeIntType:
  		if v, ok := c.Value.(int64); ok {
  			c.Value = v + delta.(int64)
  		} else {
  			c.Value = delta.(int64)
  		}
  
  	case types.CumulativeFloatType:
  		if v, ok := c.Value.(float64); ok {
  			c.Value = v + delta.(float64)
  		} else {
  			c.Value = delta.(float64)
  		}
  
  	default:
  		panic(fmt.Errorf("attempted to increment non-cumulative metric %s by %v", m.Name, delta))
  	}
  }
docs: // Incr increments the value in a given metric cell by the given delta.