code: func (v *Version) WithPreRelease(preRelease string) *Version {
  	result := *v
  	result.components = []uint{v.Major(), v.Minor(), v.Patch()}
  	result.preRelease = preRelease
  	return &result
  }
docs: // WithPreRelease returns copy of the version object with requested prerelease