anchor.diff:  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#fail--++[`fail()`],
   link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#fail-java.lang.String-++[`fail(String)`]
   
  +[[filter-step]]
  +=== Filter Step
  +
  +The `filter()` step maps the traverser from the current object to either `true` or `false` where the latter will not
  +pass the traverser to the next step in the process. Please see the <<general-steps, General Steps>> section for more
  +information.
  +
  +*Additional References*
  +
  +link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#filter-org.apache.tinkerpop.gremlin.process.traversal.Traversal-++[`map(Traversal)`]
  +
  +[[flatmap-step]]
  +=== FlatMap Step
  +
  +The `flatMap()` step maps the traverser from the current object to an `Iterator` of objects for the next step in the
  +process. Please see the <<general-steps, General Steps>> section for more information.
  +
  +*Additional References*
  +
  +link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#flatMap-org.apache.tinkerpop.gremlin.process.traversal.Traversal-++[`map(Traversal)`]
   
   [[fold-step]]
   === Fold Step
  
positive.code: link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#from-java.lang.String-++[`from(String)`],
  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#from-org.apache.tinkerpop.gremlin.process.traversal.Traversal-++[`from(Traversal)`],
  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#from-org.apache.tinkerpop.gremlin.structure.Vertex-++[`from(Vertex)`]
  
  [[graph-step]]
  === Graph Step
  
  Graph steps are those that read vertices, `V()`, or edges, `E()`, from the graph. The `V()`-step is usually used to
  start a `GraphTraversal`, but can also be used mid-traversal. The `E()`-step on the other hand can only be used as a
  start step.
  
  [gremlin-groovy,modern]
  ----
  g.V(1) <1>
  g.V().has('name', within('marko', 'vadas', 'josh')).as('person').
    V().has('name', within('lop', 'ripple')).addE('uses').from('person') <2>
  g.E(11) <3>
  g.E().hasLabel('knows').has('weight', gt(0.75))
  ----
  
  <1> Find the vertex by its unique identifier (i.e. `T.id`) - not all graphs will use a numeric value for their identifier.
  <2> An example where `V()` is used both as a start step and in the middle of a traversal.
  <3> Find the edge by its unique identifier (i.e. `T.id`) - not all graphs will use a numeric value for their identifier.
  
  NOTE: Whether a mid-traversal `V()` uses an index or not, depends on a) whether suitable index exists and b) if the
  particular graph system provider implemented this functionality.
  
  [gremlin-groovy,modern]
  ----
  g.V().has('name', within('marko', 'vadas', 'josh')).as('person').
    V().has('name', within('lop', 'ripple')).addE('uses').from('person').toString() <1>
  g.V().has('name', within('marko', 'vadas', 'josh')).as('person').
    V().has('name', within('lop', 'ripple')).addE('uses').from('person').iterate().toString() <2>
  ----
  
  <1> Normally the `V()`-step will iterate over all vertices. However, graph strategies can fold ``HasContainer``'s into a `GraphStep` to allow index lookups.
  <2> Whether the graph system provider supports mid-traversal `V()` index lookups or not can easily be determined by inspecting the `toString()` output of the iterated traversal. If `has` conditions were folded into the `V()`-step, an index - if one exists - will be used.
  
  *Additional References*
  
  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#V-java.lang.Object...-++[`V(Object...)`],
  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#E-java.lang.Object...-++[`E(Object...)`]
  
  [[group-step]]
  === Group Step
  
negative.code: *Additional References*
  
  * link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#drop--++[`drop()`]
  
  [[e-step]]
  === E Step
  
  The `E()`-step is meant to read edges from the graph and is usually used to start a `GraphTraversal`. Unlike the related
  <<v-step,V()>> it cannot be used mid-traversal.
  
  [gremlin-groovy,modern]
  ----
  g.E(11) <1>
  g.E().hasLabel('knows').has('weight', gt(0.75))
  ----
  
  <1> Find the edge by its unique identifier (i.e. `T.id`) - not all graphs will use a numeric value for their identifier.
  
  *Additional References*
  
  link:++https://tinkerpop.apache.org/javadocs/x.y.z/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#E-java.lang.Object...-++[`E(Object...)`]
  
  [[elementmap-step]]
  === ElementMap Step
  