def prepatch(version: Version) -> Version:
    return version.next_patch().first_prerelease()
def prerelease(version: Version) -> Version:
    if version.is_unstable():
        assert version.pre
        return Version(version.epoch, version.release, version.pre.next())
    else:
        return version.next_patch().first_prerelease()
def patch(version: Version) -> Version:
    return version.next_patch()