code: public static <T> Ix<T> generate(IxConsumer<IxEmitter<T>> nextSupplier) {
          return new IxGenerateStateless<T>(nullCheck(nextSupplier, "nextSupplier is null"));
      }
docs: Calls the given action to generate a value or terminate whenever the next()
  is called on the resulting Ix.iterator().
  <p>
  The result's iterator() doesn't support remove().
  <p>
  The action may call {@code onNext} at most once to signal the next value per action invocation.
  The {@code onCompleted} should be called to indicate no further values will be generated (may be
  called with an onNext in the same action invocation). Calling {@code onError} will immediately
  throw the given exception (as is if it's a RuntimeException or Error; or wrapped into a RuntimeException).
  @param <T> the value type
  @param nextSupplier the action called with an IxEmitter API to receive value, not null
  @return the new Ix instance
  @throws NullPointerException if nextSupplier is null
  @since 1.0