anchor.diff:  ==>tinkergraph[vertices:6 edges:6]
   gremlin> sg = TinkerGraph.open() <1>
   ==>tinkergraph[vertices:0 edges:0]
  -gremlin> g.E().with('sg',sg).subgraph('sg', {it.label == 'knows'}) <2>
  +gremlin> g.E().withSideEffect('sg',sg).subgraph('sg', {it.label == 'knows'}) <2>
   ==>tinkergraph[vertices:3 edges:2]
   gremlin> sg.E() <3>
   ==>e[7][1-knows->2]
  
positive.code: Sack Step
  ~~~~~~~~~
  
  A traverser can contain a traverser-local sideEffect data structure called a "sack". The `sack()`-step is used to manipulate traverser sacks (*sideEffect* or *map*). Each sack of each traverser is created when the traverser is generated using `withSack(initialValueSupplier,splitOperator?,mergerOperator?)`.
  
  * *Initial value supplier*: A `Supplier` providing the initial value of each traverser's sack.
  * *Split operator*: a `UnaryOperator` that clones the traversers sack when the traverser splits. If no split operator is provided, then it assumes `UnaryOperator.identity()`.
  
negative.code: ==>v[1]
  ==>v[4]
  
  [[traversalstrategy]]
  TraversalStrategy
  -----------------
  