from functools import reduce


def is_list_of(list_, type_func, min_len=0):
    """
    Returns boolean indicating if list contains only elements of the type
    checked by type_func.
    """
    if type(list_) is not list:
        return False
    return (reduce(lambda a, b: a and type_func(b), list_, True)
            and min_len <= len(list_))