anchor.diff:          let vertices = new CompressedArray<ResizeArray<_>>(input.ChainLength, (fun _ -> null),shift)
           let currentGSSNode = ref <| dummyGSSNode
        
  -        for e in input.InitialVertices do
  +        for i = input.InitialVertices.Length - 1 downto 0 do
  +            let e = input.InitialVertices.[i]
               let t = getEdge e
  -            let tt = getPosOnEdge e 
  -            let ext = packExtension e e
  +            let tt = getPosOnEdge e + shift
  +            let ttt = packEdgePos t tt
  +            let ext = packExtension ttt ttt
               setR.Push(new Context2(e, !currentLabel, !currentGSSNode, ext))
   
           let currentContext = ref <| new Context2(!currentIndex, !currentLabel, !currentGSSNode, !currentExtension)
  
positive.code:                         let arr = setP.[vertexKey]  
                          arr.DoForAll (fun ext  ->
                              let e = packExtension (getLeftExtension extension) (getRightExtension ext)
                              addContext ((getRightExtension ext) - shift) label vertex e)
              else
                  ignore <| containsEdge v vertex (int label) extension
                  let chainLen = input.ChainLength.[cE]
  
negative.code:                 currentGSSNode := currentContext.Value.Vertex
                  currentLabel := currentContext.Value.Label
                  currentExtension := currentContext.Value.Extension
                  let ttt = getPosOnEdge <| getLeftExtension !currentExtension
                  let aa = getPosOnEdge <| getRightExtension !currentExtension
                  condition := false
              else 
                  stop := true  
  