anchor.diff:  behavior of the step itself. A good example of its usage is shown with the revised syntax of the `pageRank()` step
   which now uses `with()` to replace the old `by()` options:
   
  -[groovy]
  +[source,groovy]
   ----
   g.V().hasLabel('person').
     pageRank().
  
positive.code: 
  A similar change was made for `peerPressure()` step:
  
  [groovy]
  ----
  g.V().hasLabel('person').
    peerPressure().
  
negative.code: 
  ==== Graph Database Providers
  
  ===== io() Step
  
  The new `io()`-step that was introduced provides some new changes to consider. Note that `Graph.io()` has been
  deprecated and users are no longer instructed to utilize that method. It is not yet decided when that method will be
  removed completely, but given the public nature of it and the high chance of common usage, it should be hanging around
  for some time.
  
  As with any step in Gremlin, it is possible to replace it with a more provider specific implementation that could be
  more efficient. Developing a `TraversalStrategy` to do this is encouraged, especially for those graph providers who
  might have special bulk loaders that could be abstracted by this step. Examples of this are already shown with
  `HadoopGraph` which replaces the simple single-threaded loader with `CloneVertexProgram`. Graph providers are
  encouraged to use the `with()` step to capture any necessary configurations required for their underlying loader to
  work. Graph providers should not feel restricted to `graphson`, `gryo` and `graphml` formats either. If a graph
  supports CSV or some custom graph specific format, it shouldn't be difficult to gather the configurations necessary to
  make that available to users.
  
  See: link:https://issues.apache.org/jira/browse/TINKERPOP-1996[TINKERPOP-1996]
  
  ===== Caching Graph Features
  
  For graph implementations that have expensive creation times, it can be time consuming to run the TinkerPop test suite
  