anchor.diff:  
   [gremlin-groovy]
   ----
  -g.addV('name', 'A').as('a').
  -  addV('name', 'B').as('b').
  -  addV('name', 'C').as('c').
  -  addV('name', 'D').as('d').
  -  addV('name', 'E').as('e').
  -  addV('name', 'F').as('f').
  -  addV('name', 'G').as('g').
  +g.addV(id, 'A').as('a').
  +  addV(id, 'B').as('b').
  +  addV(id, 'C').as('c').
  +  addV(id, 'D').as('d').
  +  addV(id, 'E').as('e').
  +  addV(id, 'F').as('f').
  +  addV(id, 'G').as('g').
     addE('hasParent').from('a').to('b').
     addE('hasParent').from('b').to('c').
     addE('hasParent').from('d').to('c').
  
positive.code: 
  [gremlin-groovy,existing]
  ----
  g.V().has('name','A').
    repeat(out('hasParent')).emit().as('x').
    repeat(__.in('hasParent')).emit(has('name','D')).
    select('x').limit(1).values('name')
  ----
  
  
negative.code: [gremlin-groovy,existing]
  ----
  g.withComputer().
    V().has(id, within(input)).
    aggregate('input').hasId(input.head()).                                <1>
    repeat(out('hasParent')).emit().as('x').
    select('input').unfold().has(id, within(input.tail())).
    repeat(out('hasParent')).emit(where(eq('x'))).
    group().
      by(select('x')).
  