anchor.diff:                  c
               if setR.Count <> 0
               then
  -                currentIndex := currentContext.Value.Index
  +                let cI = pack2to32 (getLeft32 currentContext.Value.Index) ((getRight32 currentContext.Value.Index) + shift)
  +                currentIndex := cI
                   let t = CommonFuns.getLeft32 !currentIndex
                   currentContext :=  get ()
                   let t2 = CommonFuns.getRight32 !currentIndex
  
positive.code:         let edges = Array.init slots.Count (fun _ -> new CompressedArray<SysDict<int64<extension>, SysDict<int, ResizeArray<int>>>> (input.ChainLength, (fun _ -> null)))          
          let currentGSSNode = ref <| dummyGSSNode
          
          for e in input.InitialVertices do
              let ext = packExtension e e
              setR.Enqueue(new Context2(e, !currentLabel, !currentGSSNode, ext)) 
  
          let currentContext = ref <| new Context2(!currentIndex, !currentLabel, !currentGSSNode, !currentExtension)
          
  
negative.code:     val nterm : string
      new (l,l1, r, r1, n) = {le = l; lpos = l1; re = r; rpos = r1; nterm = n}
  
  let buildAbstract<'TokenType> (parser : ParserSourceGLL<'TokenType>) (input : BioParserInputGraph<'TokenType>) maxLen condNonTerm shift = 
      if input.EdgeCount = 0 then
        Error ("This grammar does not accept empty input.")     
      else
  