def bonus_letter(puzzle: str, view: str, letter: str) -> bool:
    """Return True iff the letter is a consonant that appears in the puzzle but not view.

    >>> bonus_letter('apple', 'a^^le', 'p')
    True
    >>> bonus_letter('banana', 'ba^a^a', 'b')
    False
    >>> bonus_letter('apple', '^pp^e', 'a')
    False
    """
    if letter in puzzle and letter not in view:
        if letter not in ('a', 'e', 'i', 'o', 'u'):
            return True
    return False