anchor.diff:      let nodes = new BlockResizeArray<AstNode>()
       let terminals = new BlockResizeArray<'TokenType>()
       let startState = 0
  -    let inline getEpsilon i = new Epsilon(-1-i)
  +    let (*inline*) getEpsilon i = new Epsilon(-1-i)
       let startNonTerm = parserSource.LeftSide.[parserSource.StartRule]
       let verticesToProcess = new Queue<_>()
       verticesToProcess.Enqueue (startV)
  
positive.code:         v, isNew
  
      //return old prefixes with new edge on end
      let newPrefix (oldPrefixes:ResizeArray<Prefix>) edge =
          new Prefix(edge, oldPrefixes)
  
      //add prefix to list of prefixes
      let rec addPrefix (curLevel:ResizeArray<Prefix>) (prefixToAdd:Prefix) = 
          if prefixToAdd = null   //null used for marking the ends of prefix
          then
              if not (ResizeArray.exists
                          (fun (prefix:Prefix) -> prefix = null)
                          curLevel)
              then curLevel.Add(null)     //adding null if need
          else
              let nextCommon = ResizeArray.tryFind
                                  (fun (pr:Prefix) -> pr <> null && pr.Head = prefixToAdd.Head)
                                  curLevel
              match nextCommon with
              | Some oldPrefix -> if ResizeArray.isEmpty(prefixToAdd.Tail)
  
negative.code:     member this.OutEdges = out
      member this.State = state
      member this.PassingReductions = passingReductions
  
      member this.addEdge (edge : Edge) =
          let mutable i = out.Count - 1
  