@Contract(pure=true)
  public static <T> int indexOf(T @NotNull [] list, @NotNull Condition<? super T> condition) {
    for (int i = 0; i < list.length; i++) {
      T t = list[i];
      if (condition.value(t)) {
        return i;
      }
    }
    return -1;
  }
@Contract(pure=true)
  public static <T> int indexOf(T @NotNull [] list, @NotNull Condition<? super T> condition)