def ask(question: str, default: str = "") -> str:
    """A Simple interface for asking questions to user

    Three options are given:
        * question and no default -> This is plain input
        * question and a default value -> with no user input dafault is returned
        * question and 'yes'/'no' default -> user can type n, y, yes, no
            type-insensitive and 'yes' or 'no' is returned in any case

    Arguments:
        question (str): the question for the user

    Keyword Arguments:
        default (str): a default value (default: {""})

    Returns:
        str -- the user answer of the default (can be empty string)
    """
    if default == 'yes':
        appendix = " [Y/n] "
    elif default == 'no':
        appendix = " [y/N] "
    elif default:
        appendix = " [{}] ".format(default)
    else:
        appendix = " "

    try:
        answer = input(question + appendix)
    except EOFError as eof:
        exit("Stdin was closed. Exiting...")

    return answer if answer else default