def schedule_violations(schedule, events, slots):
    """Take a schedule and return a list of violated constraints

    Parameters
    ----------
        schedule : list or tuple
            a schedule in schedule form
        events : list or tuple
            of resources.Event instances
        slots : list or tuple
            of resources.Slot instances

    Returns
    -------
        Generator
            of a list of strings indicating the nature of the violated
            constraints
    """
    array = converter.schedule_to_array(schedule, events, slots)
    return array_violations(array, events, slots)