anchor.diff:  
               let arr = parserSource.ZeroReduces.[state].[parserSource.TokenToNumber e.Tag]
               if arr <> null then
  -                //verticesToProcess.Enqueue currentGraphV
                   customEnqueue currentGraphV
                   for prod in arr do
                       reductions.Add(new Reduction(gssVertex, prod, 0, None), currentGraphV)
  
positive.code:         if newGssVs.Count > 0 
          then
              v.unprocessedGssVertices.AddRange(newGssVs)
              //verticesToProcess.Enqueue(v)
              customEnqueue v
          if verticesSeenBefore.[v]
          then
              for e in innerGraph.OutEdges(v) do
                  let toRecalc = handlePassingReductions e.Target
                  for vToRecalc in toRecalc do customEnqueue vToRecalc //verticesToProcess.Enqueue (vToRecalc)
                  
                  if e.Target.reductions.Count > 0 || e.Target.unprocessedGssVertices.Count > 0
                  then
                      //verticesToProcess.Enqueue (e.Target)
                      customEnqueue e.Target
              let toRecalc = handlePassingReductions v
              for vToRecalc in toRecalc do customEnqueue vToRecalc //verticesToProcess.Enqueue (vToRecalc)
          else
              for e in innerGraph.OutEdges(v) do
                  customEnqueue e.Target
                  //verticesToProcess.Enqueue (e.Target)
  
  
      if tokens.EdgeCount = 0
      then
  
negative.code:     member this.Ast = ast
  
  and VInfo<'TokenType> (vNum, statesCount) =
      member val vNum = vNum with get
      member val processedGssVertices = new ResizeArray<Vertex>() with get
      member val unprocessedGssVertices = new ResizeArray<Vertex>() with get
      member val reductions = new Queue<_> (10) with get
  
      member this.GetReduction() = 
          this.reductions.Dequeue()
  
      member this.AddReduction(r) =
          this.reductions.Enqueue(r)
  
  and [<Struct>]
      Reduction =
  