anchor.diff:          |> Array.rev
           |> Array.Parallel.map(fun e -> 
               let pos = e * 1<positionInInput>
  -            //let leftPos = e * 1<leftPosition>
               let vertex = new GSSVertex(!currentState, pos)
               gss.AddVertex vertex |> ignore
               new ContextFSA<_>(pos, !currentState, vertex, !currentLength))
  +
       /// Stack of contexts
       let setR = new System.Collections.Generic.Stack<ContextFSA<_>>(startContexts)  
                    
  
positive.code: 
          if startV.P.Count > 0
          then startV.P |> ResizeArray.iter(fun (newIndex, l) -> addContext newIndex stateToContinue currentVertex (len + l))        
          else addContext index posInGrammar newVertex 0us
              
      /// 
      let pop () =
  
negative.code:                 
          let cond, nextState = parser.StateAndTokenToNewState.TryGetValue dictionaryKey
          if cond
          then eatTerm nextState curEdge curPos
  
          for curNonterm, nextState in outEdges do
              if curNonterm = anyNonterm
  