docs: public static ExtractFromRow convert( final ExtractFromRow extractor,
                                            final TypeFactory<?> newType ) {
          return new ExtractFromRow() {
              @Override
              public TypeFactory<?> getType() {
                  return newType;
              }
  
              @Override
              public Object getValueInRow( RowAccessor row ) {
                  Object value = extractor.getValueInRow(row);
                  if (value == null) return value;
                  if (value instanceof Object[]) {
                      Object[] values = (Object[])value;
                      for (int i = 0; i != values.length; ++i) {
                          values[i] = newType.create(values[i]);
                      }
                      return values;
                  }
                  return newType.create(extractor.getValueInRow(row));
              }
  
              @Override
              public String toString() {
                  return "(as-string " + extractor.toString() + " )";
              }
          };
      }