anchor.diff:  ----
   
   IMPORTANT: Note that a standalone anonymous traversal is a common use case which comes with a limitation: Anonymous traversals do not have all strategies applied to them by default. This can lead to some unexpected behaviors as shown in the following example.
  -
  -[source,groovy]
  -----
  -gremlin> g = TinkerFactory.createModern()
  -==>tinkergraph[vertices:6 edges:6]
  -gremlin> software = g.V().hasLabel('software').toList()
  -==>v[3]
  -==>v[5]
  -gremlin> inject(software).unfold().groupCount().by('lang')
  -Side effects do not have a value for provided key: null
  -Display stack trace? [yN]
  -----
  -
  -You have two options to get around this limitation. Either explicitly apply all the required strategies to all anonymous traversals or apply the strategies only to the current traversal.
  -
  -[gremlin-groovy,modern]
  -----
  -import org.apache.tinkerpop.gremlin.process.graph.traversal.__
  -import org.apache.tinkerpop.gremlin.process.graph.traversal.strategy.*
  -TraversalStrategies.GlobalCache.registerStrategies(__, <1>
  -    TraversalStrategies.GlobalCache.getStrategies(__).addStrategies(
  -        SideEffectCapStrategy.instance(),
  -        SideEffectRegistrationStrategy.instance()))
  -software = g.V().hasLabel('software').toList()
  -inject(software).unfold().groupCount().by('lang')
  -----
  -
  -<1> Apply required strategies globally for all anonymous traversals.
  -
  -[gremlin-groovy,modern]
  -----
  -import org.apache.tinkerpop.gremlin.process.graph.traversal.__
  -import org.apache.tinkerpop.gremlin.process.graph.traversal.strategy.*
  -software = g.V().hasLabel('software').toList()
  -t = inject(software).unfold().groupCount().by("lang"); null <1>
  -t.getStrategies().addStrategies(
  -    SideEffectCapStrategy.instance(),
  -    SideEffectRegistrationStrategy.instance()) <2>
  -t <3>
  -----
  -
  -<1> Create the traversal, but don't evaluate it.
  -<2> Apply the required strategies locally (only for this particular traversal).
  -<3> Evaluate the traversal.
   
   [[is-step]]
   Is Step
  
positive.code: 
  [gremlin-groovy,modern]
  ----
  sg = g.E().hasLabel('knows').subgraph().next() <1>
  sg.E() <2>
  ----
  
  
negative.code: image::tree-step2.png[width=500]
  
  The resultant tree data structure can then be manipulated (see link:http://www.tinkerpop.com/javadocs/current/org/apache/tinkerpop/gremlin/process/graph/step/util/Tree.html[Tree JavaDoc]). For the sake of demonstration, a post-processing lambda is applied in the running example below.
  ////
  [gremlin-groovy,modern]
  ----
  //tree = g.V().out().out().tree().by('name').next()
  //tree['marko']
  //tree['marko']['josh']
  //tree.getObjectsAtDepth(3)
  ----
  ////
  
  [[unfold-step]]
  Unfold Step
  