anchor.diff:  
   module Yard.Generators.ARNGLR.Parser
   
  -open Yard.Generators.RNGLR
  +open AbstractAnalysis.Common
  +open Microsoft.FSharp.Collections
  +open System.Collections.Generic
   open Yard.Generators.Common.AST
   open Yard.Generators.Common.AstNode
  -//open Yard.Generators.Common.ARNGLR.SimpleAST
  -open System.Collections.Generic
   open Yard.Generators.Common.DataStructures
  -//open Yard.Generators.RNGLR.Parser 
  -open Microsoft.FSharp.Collections
  -open AbstractAnalysis.Common
  +open Yard.Generators.RNGLR
   
   type ParseResult<'TokenType> =
       | Success of Tree<'TokenType>
       | Error of int * 'TokenType * string
  -
  -[<Struct>]
  -type Item =
  -    val prod : int
  -    val pos : int
  -    new (_prod, _pos) = {prod = _prod; pos = _pos}
   
   [<AllowNullLiteral>]
   type Vertex (state : int, level : int) =
  
positive.code:                         let arr = parserSource.Reduces.[state].[parserSource.TokenToNumber e.Tag]
                          if arr <> null then
                              for (prod, pos) in arr do
                                  currentGraphV.reductions.Enqueue(newVertex, prod, pos, Some edge)
                  edge.Ast
              | x -> (newVertex.Edge x).Ast
          addChildren nodes.[ast] (Microsoft.FSharp.Collections.Array.copy path) prod
  
negative.code:                     let arr = parserSource.ZeroReduces.[push].[parserSource.TokenToNumber e2.Tag]
                      if arr <> null then
                          for prod in arr do
                              reductions.Add(new Reduction(targetGssV, prod, 0, None), e.Target)
  
                      let arr = parserSource.Reduces.[push].[parserSource.TokenToNumber e2.Tag]
                      if arr <> null then
                          for (prod, pos) in arr do
                              //printf "%A %A %d %d\n" v.label v.outEdges prod pos
                              reductions.Add(new Reduction(gssVertex, prod, pos, Some edge), e.Target)
  
              let arr = parserSource.ZeroReduces.[state].[parserSource.TokenToNumber e.Tag]
              if arr <> null then
                  verticesToProcess.Enqueue currentGraphV
                  for prod in arr do
                      reductions.Add(new Reduction(gssVertex, prod, 0, None), currentGraphV)
          
          let reductionSet = new ResizeArray<Reduction * VInfo<_>>(10)
          for r, target in reductions do
              let reductionExists = 
                  reductionSet
                  |> ResizeArray.exists(function red, _ -> red = r)
              if not reductionExists then reductionSet.Add(r, target)
          for r, target in reductionSet do
              target.reductions.Enqueue(r)
          
          currentGraphV.processedGssVertices.Add(gssVertex)
  