from typing import Iterable
from typing import Set


def trim(minimum: int, maximum: int, word_list: Iterable[str]) -> Set[str]:
    """
    Output word list in lowercase based on min/max letter count.

    Does not validate maximum and maximum, expected to be done before calling.
    :param minimum: minimum letters allowed in a word.
    :param maximum: maximum letters allowed in a word.
    :param word_list: source list of words to be trimmed.
    :return: Reduced set of words.
    """
    reduced_words = set()  # prevent duplicates
    word: str
    for word in word_list:
        if minimum <= len(word) <= maximum:
            reduced_words.add(word.lower())
    return reduced_words