code: func HashTo(v Value, p []byte) {
  	h := hashPool.Get().(hash.Hash)
  	h.Reset()
  	defer hashPool.Put(h)
  	if len(p) < HashSize {
  		panic("buffer too small to fit the hash")
  	}
  	if v != nil {
  		// TODO(kortschak,dennwc) Remove dependence on String() method.
  		h.Write([]byte(v.String()))
  	}
  	h.Sum(p[:0])
  }
docs: // HashTo calculates a hash of value v, storing it in a slice p.