from typing import Iterable


def join_with_single_quotes(names: Iterable[str]) -> str:
    """
    Individually wrap the names in quotes and return comma-separated names in a string.

    If the input is a set of names, the names are sorted first.
    If the input is a list of names, the order of the list is respected.
    If the input is cheese, the order is for more red wine.

    >>> join_with_single_quotes(["foo", "bar"])
    "'foo', 'bar'"
    >>> join_with_single_quotes({"foo", "bar"})
    "'bar', 'foo'"
    >>> join_with_single_quotes(frozenset(["foo", "bar"]))
    "'bar', 'foo'"
    """
    if isinstance(names, (set, frozenset)):
        return ", ".join("'{}'".format(name) for name in sorted(names))
    return ", ".join("'{}'".format(name) for name in names)