code: func newValueFunc(desc *Desc, valueType ValueType, function func() float64) *valueFunc {
  	result := &valueFunc{
  		desc:       desc,
  		valType:    valueType,
  		function:   function,
  		labelPairs: makeLabelPairs(desc, nil),
  	}
  	result.init(result)
  	return result
  }
docs: // newValueFunc returns a newly allocated valueFunc with the given Desc and
  // ValueType. The value reported is determined by calling the given function
  // from within the Write method. Take into account that metric collection may
  // happen concurrently. If that results in concurrent calls to Write, like in
  // the case where a valueFunc is directly registered with Prometheus, the
  // provided function must be concurrency-safe.