anchor.diff:                      if current.ContainsKey vertexKey
                       then
                           let trees = current.[vertexKey]
  -                        if not <| trees.Contains extension
  +                        if not <| Array.contains extension !trees
                           then 
  -                            trees.Add extension
  +                            Array.Resize(trees, (!trees).Length + 1)
  +                            (!trees).[(!trees).Length - 1] <- extension
  +                            //trees := Array.reduce` extension
                               false
                           else
                               true
                       else 
  -                        let arr = new ResizeArray<int64<extension>>()
  -                        arr.Add extension
  -                        current.Add(vertexKey, arr)                    
  +//                        let arr = new ResizeArray<int64<extension>>()
  +//                        arr.Add extension
  +                        current.Add(vertexKey, ref [|extension|])                    
                           false
                   else 
  -                    let dict = new SysDict<_, ResizeArray<_>>()
  +                    let dict = new SysDict<_,_>()
                       setU.[inputIndex].Add(int label, dict)
  -                    let arr = new ResizeArray<_>()
  -                    arr.Add extension
  -                    dict.Add(vertexKey, arr) 
  +                    //let arr = new ResizeArray<_>()
  +                    //arr.Add extension
  +                    dict.Add(vertexKey, ref [|extension|]) 
                       false
               else 
                   let dict1 = new SysDict<_, _>()
                   setU.[inputIndex] <- dict1
  -                let dict2 = new SysDict<_, ResizeArray<_>>()
  +                let dict2 = new SysDict<_, _>()
                   dict1.Add(int label, dict2)
  -                let arr = new ResizeArray<_>()
  -                arr.Add extension
  -                dict2.Add(vertexKey, arr)
  +//                let arr = new ResizeArray<_>()
  +//                arr.Add extension
  +                dict2.Add(vertexKey, ref [|extension|])
                   false
               
           let addContext (inputVertex : int) (label : int<labelMeasure>) vertex extension len =
  
positive.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 = 
  
negative.code:                                 for pair in ra do if (fst pair) = e.NontermLabel then contains <- true
                                  if contains then true, None
                                  else
                                      let a = ref ra
                                      Array.Resize(a, ra.Length + 1)
                                      (!a).[ra.Length] <- (e.Level,len)
                                      dictNontermKey.[e.NontermLabel] <- (!a)
                                      false, None
                              else
                                  //let arr = new ResizeArray<_>()
                                  //arr.Add((e.Level,len))
                                  let arr = [|e.Level,len|]
                                  dictNontermKey.Add(e.NontermLabel, arr)
                                  false, None
                          else
  //                            let ra = new ResizeArray<_>()
  //                            ra.Add((e.Level,len))
                              let arr = [|e.Level,len|]
                              let d = new SysDict<int, _>()
                              d.Add(e.NontermLabel, arr)
                              dictExtensionKey.Add(extension, d)
                              false, None    
                      else
                          let d1 = new SysDict<int64<extension>, SysDict<int, _>>()
                          let d2 = new SysDict<int, _>()
  //                        let ra = new ResizeArray<_>()
  //                        ra.Add((e.Level,len))
                          let arr = [|e.Level,len|]
                          d2.Add(e.NontermLabel, arr)
                          d1.Add(extension, d2)
                          dictLabelKey.Add(label, d1)
                          false, None
                  else 
                      let d0 = new SysDict<int, SysDict<int64<extension>, SysDict<int, _>>>()
                      let d1 = new SysDict<int64<extension>, SysDict<int, _>>()
                      let d2 = new SysDict<int, _>()
  //                    let ra = new ResizeArray<_>()
  //                    ra.Add((e.Level,len))
                      let arr = [|e.Level,len|]
                      d2.Add(e.NontermLabel, arr)
                      d1.Add(extension, d2)
                      d0.Add(label, d1)
                      false, Some d0
  