def evaluate_parens(paren_string: str) -> bool:
    """
    Evaluate an expression consisting of ( and ), and ensure that they are balanced.
    :param paren_string: A string representing the expression
    :return: True if the ( and ) parentheses are balanced, and False otherwise.

    >>> evaluate_parens('')
    True
    >>> evaluate_parens('()')
    True
    >>> evaluate_parens('(()(()))')
    True
    >>> evaluate_parens(')')
    False
    >>> evaluate_parens('(()')
    False
    >>> evaluate_parens('())(')
    False
    """
    lefts = 0
    for ch in paren_string:
        if ch == '(':
            lefts += 1
        elif ch == ')':
            if lefts <= 0:
                return False
            lefts -= 1
    return lefts == 0