anchor.diff:          if remainLength = 0 
           then handlePath path vertex currentGraphV startV nonTerm pos prod shouldEnqueueVertex
           else
  -            let areEqual (_prod, _remainLength, _path : Path, _nonTerm, _pos, _startV) (prod, remainLength, path : Path, nonTerm, pos, startV) =
  -                prod = _prod 
  -                && remainLength = _remainLength 
  -                && path.IsEqual(_path)
  -                && nonTerm = _nonTerm 
  -                && pos = _pos 
  -                && startV = _startV
  -
               if not (ResizeArray.exists 
  -                       (fun x -> areEqual x (prod, remainLength, path, nonTerm, pos, startV))
  +                       (fun (_prod, _remainLength, _path : Path, _nonTerm, _pos, _startV) ->
  +                            prod = _prod 
  +                            && remainLength = _remainLength 
  +                            && path.IsEqual(_path)
  +                            && nonTerm = _nonTerm 
  +                            && pos = _pos 
  +                            && startV = _startV)
                          vertex.PassingReductions)
               then vertex.PassingReductions.Add (prod, remainLength, path, nonTerm, pos, startV)
               vertex.OutEdges |> ResizeArray.iter
  
positive.code:         verticesToRecalc
  
      let processVertex v = 
          let temp = nodes
  
          makeReductions v
  
          let newGssVs = new ResizeArray<_>(2)
  
negative.code: 
              let arr = parserSource.ZeroReduces.[state].[parserSource.TokenToNumber e.Tag]
              if arr <> null then
                  customEnqueue currentGraphV
                  for prod in arr do
                      reductions.Add(new Reduction(gssVertex, prod, 0, None), currentGraphV)
  