<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def generate_version( current_version: str, increment: str, prerelease: Optional[str] = None ) -> Version: """Based on the given increment a proper semver will be generated. For now the rules and versioning scheme is based on python's PEP 0440. More info: https://www.python.org/dev/peps/pep-0440/ Example: PATCH 1.0.0 -> 1.0.1 MINOR 1.0.0 -> 1.1.0 MAJOR 1.0.0 -> 2.0.0 """

    pre_version = prerelease_generator(current_version, prerelease=prerelease)
    semver = semver_generator(current_version, increment=increment)
    # TODO: post version
    # TODO: dev version
    return Version(f"{semver}{pre_version}")