@Contract(pure=true)
  public static <T> int indexOf(T @NotNull [] objects, T object, @NotNull BiPredicate<? super T, ? super T> comparator) {
    for (int i = 0; i < objects.length; i++) {
      if (comparator.test(objects[i], object)) {
        return i;
      }
    }
    return -1;
  }
@Contract(pure=true)
  public static <T> int indexOf(T @NotNull [] objects, T object, @NotNull BiPredicate<? super T, ? super T> comparator)