public boolean matches(Object value1, Object value2) {
   if (value1 == value2) return true;
   if (NumberValue.isNaN(value1) && NumberValue.isNaN(value2)) return true;
   return Compare.apply(Compare.LENIENT_EQ, value1, value2, collator);
 }