anchor.diff:          let descriptorNumber = ref 0
           let slots = parser.Slots
           let condNonTermRules = Seq.toArray <| seq{for i in 0..parser.LeftSide.Length - 1 do if parser.LeftSide.[i] = condNonTerm then yield i}
  -        let setU = new CompressedArray<SysDict<int, SysDict<int64, ResizeArray<int64<extension>>>>>(input.ChainLength, (fun _ -> null ),shift) 
  +        let setU = new CompressedArray<SysDict<int, SysDict<int64, _(*ResizeArray<int64<extension>>*)>>>(input.ChainLength, (fun _ -> null ),shift) 
           let setP = new SysDict<int64, Yard.Generators.Common.DataStructures.ResizableUsualOne<int64<extension>*uint16>>(500)
           let currentRule = parser.StartRule
           let currentLabel = ref <| (CommonFuns.packLabelNew currentRule 0) * 1<labelMeasure>
  
positive.code:                         then    
                              let curToken = input.Edges.[cE].Tokens.[cP] 
                              if curToken = curSymbol
                              then
                                  eatTerm ()
                          else   
                              let curEdge = 
                                  let oEdges = outEdges.[input.Edges.[cE].End]
  
negative.code:     val lpos : int
      val re : int
      val rpos : int
      val nterm  : string
      val length : uint16
      new (l,l1, r, r1, n, len) = {le = l; lpos = l1; re = r; rpos = r1; nterm = n; length = len}
  
  let buildAbstract<'TokenType> (parser : ParserSourceGLL<'TokenType>) (input : BioParserInputGraph) condNonTerm = 
  