anchor.diff:          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 setP = new SysDict<int64, Yard.Generators.Common.DataStructures.ResizableUsualOne<int64<extension>>>(500)
  -        let setR = new System.Collections.Generic.Queue<Context2>(100)  
  +        let setR = new System.Collections.Generic.Stack<Context2>(100)  
           let currentRule = parser.StartRule
           let currentLabel = ref <| (CommonFuns.packLabelNew currentRule 0) * 1<labelMeasure>
           let tempCount = ref 0
  
positive.code:             | None -> 
                  Error ("String was not parsed")
              | Some res -> 
                  printfn "Reused descriptors %d" !reused
                  printfn "All descriptors %d" !descriptorNumber
                  Success1 (res) 
                                    
negative.code:         let stop = ref false
          let rec dispatcher () =
              let rec get () =
                  let c = setR.Pop()
                  c
              if setR.Count <> 0
              then
  