anchor.diff:          let mutable i = out.Count - 1
           while i >= 0 && out.[i].Dest.Level <= level && (out.[i].Dest.Level <> level || out.[i].Dest.State <> state) do
               i <- i - 1
  -        if i >= 0 && out.[i].Dest.Level = level && out.[i].Dest.State = state then i
  +        if i >= 0 && out.[i].Dest.Level = level && out.[i].Dest.State = state 
  +        then i
           else -1
  +
       member this.Edge i = out.[i]
   
   and Edge (destination : Vertex, ast : int) =
       member this.Dest = destination
       member this.Ast = ast
   
  -and VInfo<'TokenType> (vNum, statesCount) =
  +and VInfo<'TokenType> (vNum) =
       member val vNum = vNum with get
       member val processedGssVertices = new ResizeArray<Vertex>() with get
       member val unprocessedGssVertices = new ResizeArray<Vertex>() with get
  
positive.code:                 if (pos > 0)
                  then
                      for e in outEdgesInnerGraph.[startV.vNum] do
                          let arr = parserSource.Reduces.[state].[parserSource.TokenToNumber e.Tag]
                          if arr <> null then
                              for (prod, pos) in arr do
                                  startV.AddReduction(new Reduction(newVertex, prod, pos, Some edge))
                  edge.Ast
              | x -> (newVertex.Edge x).Ast 
          if ast >= 0 
  
negative.code: 
  and [<AllowNullLiteral>]
      Path (head : AstNode, tail : Path, length : int) = 
  
      let compare (x : AstNode) (y : AstNode) = 
          match x with
          | :? Epsilon as x' -> match y with | :? Epsilon as y' -> x'.EpsilonNonTerm = y'.EpsilonNonTerm | _ -> false
  