Return the cross-product of all elements of property_sets, less any
        that would contain conflicting values for single-valued features.

def __x_product (property_sets):
    """ Return the cross-product of all elements of property_sets, less any
        that would contain conflicting values for single-valued features.
    """
    assert is_iterable_typed(property_sets, property_set.PropertySet)
    x_product_seen = set()
    return __x_product_aux (property_sets, x_product_seen)[0]