anchor.diff:  /// <param name="item">
   /// Terminal/nonterminal represented by this node
   /// </param>
  -[<AllowNullLiteral>]
  -type Node (item:GrammarItem) =
  +and [<AllowNullLiteral>] Node (item:GrammarItem) =
       // terminal/nonterminal represented by this node
       member val Item = item with get
       // input buffer position of the matched input terminal
  
positive.code:         this.removeNext oldNode
          Seq.iter this.addNext newNodes
          oldNode.NextNodes <- null
  
      new (item, next, parentLink) as this =
          Node(item) then
          this.BackNode <- BackNode(this, parentLink)
          this.addNext(next)
          this.addParent(parentLink)
  
  /// <summary>
  /// Contains a backward link for a left-to-right travsersal.
  /// </summary>
  and [<AllowNullLiteral>] BackNode (node:Node, parentLink) =
      // SPPF node this BackNode stores links for
      member val Node = node with get, set
      // nodes that are previous for this in a left-to-right traversal
      member val PrevNodes = ResizeArray<BackNode> () with get
      // link to the Node's parent that should be removed if this BackNode is removed
      member val ParentLink = parentLink with get
     
      // adds a node that is previous for this in a left-to-right traversal
      member this.addPrev = this.PrevNodes.Add
      // removes this node from left-to-right traversals 
      member this.removePrev = this.PrevNodes.Remove >> ignore
  
  (*1: condider the following ambiguous grammar:
         S -> AxxA
  
negative.code: module Yard.Generators.GLL.AST
  
  type GrammarItem = Trm of int | Ntrm of int
  
  /// <summary>
  /// Contains a backward link for a left-to-right travsersal.
  /// </summary>
  [<AllowNullLiteral>]
  type BackNode (node:Node, parentLink) =
      // SPPF node this BackNode stores links for
      member val Node = node with get, set
      // nodes that are previous for this in a left-to-right traversal
      member val PrevNodes = ResizeArray<BackNode> () with get
      // link to the Node's parent that should be removed if this BackNode is removed
      member val ParentLink = parentLink with get
     
      // adds a node that is previous for this in a left-to-right traversal
      member this.addPrev = this.PrevNodes.Add
      // removes this node from left-to-right traversals 
      member this.removePrev = this.PrevNodes.Remove >> ignore
      // removes all backward links from this node
      member this.clearPrev = this.PrevNodes.Clear
  
  /// <summary>
  /// SPPF Node that also contains forward links for left-to-right traversals.
  