def generate_diff(old_list, new_list):
    """Returns 2 lists of added, deleted and unchanged elements.

    Added elements are elements presents in new_list but not in old_list.
    Deleted elements are elements presents in old_list but not in new_list.

    Args:
        old_list (list): Old list.
        new_list (list): New list.

    Returns:
        tuple: Contains 2 elements:
            - A list of added elements;
            - A list of deleted elements.
            - A list of unchanged elements.
    """
    old_set = set(old_list)
    new_set = set(new_list)

    added = new_set - old_set
    deleted = old_set - new_set
    unchanged = old_set.intersection(new_set)

    return list(added), list(deleted), list(unchanged)