code: func (o *Generator) NewHash(hash hash.Hash, names ...interface{}) UUID {
  	id := UUID{}
  	id.unmarshal(digest(hash, []byte{}, names...))
  	id[versionIndex] &= 0x0f
  	id[versionIndex] |= uint8(0 << 4)
  	id[variantIndex] &= variantSet
  	id[variantIndex] |= VariantFuture
  	return id
  }
docs: // NewHash generate a UUID based on the given hash implementation. The hash will
  // be of the given names. The version will be set to 0 for Unknown and the
  // variant will be set to VariantFuture.