anchor.diff:  
   [gremlin-groovy,existing]
   ----
  -g.V().has('name','A').
  +g.V('A').
     repeat(out('hasParent')).emit().as('x').
  -  repeat(__.in('hasParent')).emit(has('name','D')).
  +  repeat(__.in('hasParent')).emit(hasId('D')).
     select('x').limit(1).values('name')
   ----
   
  
positive.code: [gremlin-groovy,existing]
  ----
  input = ['A','B','D']
  g.V().has('name', input.head()).
    repeat(out('hasParent')).emit().as('x').                               <1>
    V().has('name', within(input.tail())).                                 <2>
    repeat(out('hasParent')).emit(where(eq('x'))).                         <3>
    group().
      by(select('x')).
  
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')).
  