code: public static final <T> Stream<T> insertAt(final Stream<T> stream, final int pos, final T... values) {
          final Tuple2<Stream<T>, Stream<T>> Tuple2 = duplicatePos(stream, pos);
          return appendStream(append(Tuple2._1().limit(pos), values), Tuple2._2().skip(pos));
      }
docs: Insert data into a stream at given position
  <pre>
  {@code
  List<String> result = 	of(1,2,3).insertAt(1,100,200,300)
  .map(it ->it+"!!").collect(CyclopsCollectors.toList());
  
  assertThat(result,equalTo(Arrays.asList("1!!","100!!","200!!","300!!","2!!","3!!")));
  
  }
  </pre>
  @param pos to insert data at
  @param values to insert
  @return Stream with new data inserted