@Contract(pure=true)
  public static <T> int indexOf(@NotNull List<? extends T> objects, T object, @NotNull BiPredicate<? super T, ? super T> predicate) {
    for (int i = 0; i < objects.size(); i++) {
      if (predicate.test(objects.get(i), object)) {
        return i;
      }
    }
    return -1;
  }
@Contract(pure=true)
  public static <T> int indexOf(@NotNull List<? extends T> objects, T object, @NotNull BiPredicate<? super T, ? super T> predicate)