public default <A> TraversalSource withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator) {
        final TraversalSource clone = this.clone();
        clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(initialValue).splitOperator(splitOperator).create());
        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator);
        return clone;
    }
Add a sack to be used throughout the life of a spawned {@link Traversal}.
This adds a {@link SackStrategy} to the strategies.

@param initialValue  a supplier that produces the initial value of the sideEffect
@param splitOperator the sack split operator
@return a new traversal source with updated strategies
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java