anchor.diff:                  // is the one we're trying to derive AND the parser position of this
                   // item is the initial position.
                   if item.Nonterminal = derivingNonterminal && item.Position = 0<_> then
  -                    Graph.addEdge (Item nonterminalDerivingItem) (Item item) () positionGraph
  +                    Graph.addEdge (Item nonterminalDerivingItem) (Item item) positionGraph
                   else
                       positionGraph))
   
  
positive.code:     //
      let private nonfreeItems (graph : ParserStatePositionGraph<'Nonterminal, 'Terminal, 'Lookahead>) =
          /// For each item in the graph, contains the set of items/actions reachable from it.
          let reachableFrom = LabeledSparseDigraph.reachable graph
  
          /// For each item in the graph, contains the set of items/actions it dominates.
          let dominated = LabeledSparseDigraph.dominators graph
  
          // Positions are not free if they can derive themselves
          // (i.e., if they have a self-loop in the graph).
  
negative.code:         // Remove in- and out-edges of the vertex.
          let edges =
              edges
              |> Set.filter (fun (source, target) ->
                  source <> vertex
                  && target <> vertex)
  
          VertexLabeledSparseDigraph (
              Set.remove vertex vertices,
              edges)
  
  