static AttributeComparator numericComparator(Function<Integer, Boolean> evaluator) {
        return stringComparator((lhs, rhs) -> {
            BigDecimal lhsNumber = parseNumber(lhs);
            if (lhsNumber == null) {
                return false;
            }

            BigDecimal rhsNumber = parseNumber(rhs);
            if (rhsNumber == null) {
                return false;
            }

            return evaluator.apply(lhsNumber.compareTo(rhsNumber));
        });
    }
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