def is_cover(set_of_sets, alphabet):
    """
    Determine whether `set_of_sets` is a cover of `alphabet`; that is,
    is every element of `alphabet` represented somewhere in `set_of_sets`?

    Parameters
    ----------
    set_of_sets : a (frozen)set of (frozen)sets
        The potential covering.
    alphabet : set
        The full alphabet.

    Returns
    -------
    cover : bool
        Whether set_of_sets is a cover or not.
    """
    return set().union(*set_of_sets) == set(alphabet)