@Contract(pure = true)
  public static @NotNull String join(String @NotNull [] strings, @NotNull String separator) {
    return join(strings, 0, strings.length, separator);
  }
@Contract(pure = true)
  public static @NotNull String join(String @NotNull [] strings, @NotNull String separator)