def _compare_set(new_set, old_set, change_list, root):
    """
        a method for list changes made to a set

    :param new_set: set with new values
    :param old_set: set with old values
    :param change_list: list of differences between old and new
    :patam root: string with record of path to the root of the main object
    :return: list of differences between old and new
    """
    from copy import deepcopy
    path = deepcopy(root)
    missing_items = old_set - new_set
    extra_items = new_set - old_set
    for item in missing_items:
        change_list.append({'action': 'REMOVE', 'key': None, 'value': item,
            'path': path})
    for item in extra_items:
        change_list.append({'action': 'ADD', 'key': None, 'value': item,
            'path': path})
    return change_list
