def distinct(list_a: list, list_b: list, key_func):
    """
    Take two lists of arbitrary objects and get the union of distinct objects between the two
    :param list_a: First object list
    :param list_b: Second object list
    :param key_func: function for extracting unique key from objects
    :return: The values of the two lists, minus duplicates.
    """
    lists_dict = {key_func(item): item for item in list_a}
    lists_dict.update({key_func(item): item for item in list_b})

    return lists_dict.values()