anchor.diff:          option(none, values('name'))
   ----
   
  +[[coalesce-step]]
  +Coalesce Step
  +~~~~~~~~~~~~~
  +
  +The `coalesce()`-step evaluates the provided traversals in order and returns the first traversal that emits at
  +least one element.
  +
  +[gremlin-groovy,modern]
  +----
  +g.V(1).coalesce(outE('knows'), outE('created')).inV().path().by('name').by(label)
  +g.V(1).coalesce(outE('created'), outE('knows')).inV().path().by('name').by(label)
  +g.V(1).property('nickname', 'okram')
  +g.V().hasLabel('person').coalesce(values('nickname'), values('name'))
  +----
  +
   [[coin-step]]
   Coin Step
   ~~~~~~~~~
  
positive.code: <1> Group and count verticies by their label.  Emit the side effect labeled 'a', which is the group count by label.
  <2> Same as statement 1, but also emit the side effect labeled 'b' which groups vertices by the number of out edges.
  
  [[coalesce-step]]
  Coalesce Step
  ~~~~~~~~~~~~~
  
  The `coalesce()`-step evaluates the provided traversals in order and returns the first traversal that emits at
  least one element.
  
  [gremlin-groovy,modern]
  ----
  g.V(1).coalesce(outE('knows'), outE('created')).inV().path().by('name').by(label)
  g.V(1).coalesce(outE('created'), outE('knows')).inV().path().by('name').by(label)
  g.V(1).property('nickname', 'okram')
  g.V().hasLabel('person').coalesce(values('nickname'), values('name'))
  ----
  
  [[count-step]]
  Count Step
  ~~~~~~~~~~
  
  image::count-step.png[width=195]
  
  The `count()`-step (*map*) counts the total number of represented traversers in the streams (i.e. the bulk count).
  
  [gremlin-groovy,modern]
  ----
  g.V().count()
  g.V().hasLabel('person').count()
  g.V().hasLabel('person').outE('created').count().path()  <1>
  g.V().hasLabel('person').outE('created').count().map {it.get() * 10}.path() <2>
  ----
  
  <1> `count()`-step is a <<a-note-on-barrier-steps,reducing barrier step>> meaning that all of the previous traversers are folded into a new traverser.
  <2> The path of the traverser emanating from `count()` starts at `count()`.
  
  IMPORTANT: `count(local)` counts the current, local object (not the objects in the traversal stream). This works for
  `Collection`- and `Map`-type objects. For any other object, a count of 1 is returned.
  
  [[choose-step]]
  Choose Step
  ~~~~~~~~~~~
  
negative.code: 
  <1> Show the names of people, but show "inhuman" for other vertices.
  <2> Same as statement 1 (unless there is a person vertex with no name).
  
  [[count-step]]
  Count Step
  ~~~~~~~~~~
  
  image::count-step.png[width=195]
  
  The `count()`-step (*map*) counts the total number of represented traversers in the streams (i.e. the bulk count).
  
  [gremlin-groovy,modern]
  ----
  g.V().count()
  g.V().hasLabel('person').count()
  g.V().hasLabel('person').outE('created').count().path()  <1>
  g.V().hasLabel('person').outE('created').count().map {it.get() * 10}.path() <2>
  ----
  
  <1> `count()`-step is a <<a-note-on-barrier-steps,reducing barrier step>> meaning that all of the previous traversers are folded into a new traverser.
  <2> The path of the traverser emanating from `count()` starts at `count()`.
  
  IMPORTANT: `count(local)` counts the current, local object (not the objects in the traversal stream). This works for
  `Collection`- and `Map`-type objects. For any other object, a count of 1 is returned.
  
  [[cyclicpath-step]]
  CyclicPath Step
  