static AttributeComparator flattenedCompare(AttributeComparator singleComparison) {
        return (lhs, rhs, caseInsensitive) -> {
            for (AttributeValue l : lhs.getFlattenedValues()) {
                for (AttributeValue r : rhs.getFlattenedValues()) {
                    if (singleComparison.compare(l, r, caseInsensitive)) {
                        return true;
                    }
                }
            }

            return false;
        };
    }
Compares the given attribute values by flattening each side of the
comparison, and comparing each value.

<p>This method is necessary in order to support matching on projections
using projection semantics.

@param singleComparison Comparison to apply to each element.
@return Returns the created comparator.
smithy-model/src/main/java/software/amazon/smithy/model/selector/AttributeComparator.java