@Contract(pure = true)
  public static @NotNull Iterable<String> tokenize(@NotNull StringTokenizer tokenizer) {
    return () -> new Iterator<String>() {
      @Override
      public boolean hasNext() {
        return tokenizer.hasMoreTokens();
      }

      @Override
      public String next() {
        return tokenizer.nextToken();
      }

      @Override
      public void remove() {
        throw new UnsupportedOperationException();
      }
    };
  }
@Contract(pure = true)
  public static @NotNull Iterable<String> tokenize(@NotNull StringTokenizer tokenizer)