anchor.diff:              let labelN = slots.[int b.NontermLabel]
               let beginLevel = int b.Level
               let endLevel = int e.Level
  -            let dict1 = edges.[labelN, beginLevel]
  +            let dict1 = edges.[labelN].[beginLevel]
               let cond, dict = structures.ContainsEdge dict1 ast e
  -            if dict.IsSome then edges.[labelN, beginLevel] <- dict.Value
  +            if dict.IsSome then edges.[labelN].[beginLevel] <- dict.Value
               cond
           
           
  
positive.code:         let o = treeProc.printerAgent
  
          let nonTerminalNodes = new SysDict<int64,int<nodeMeasure>>()        
          let intermidiateNodes = Array2D.zeroCreate<SysDict<int<labelMeasure>, int<nodeMeasure>>> (input.VertexCount) (input.VertexCount) //убрала +1
          let edges = Array2D.zeroCreate<SysDict<int<nodeMeasure>, SysDict<int, ResizeArray<int>>>> slots.Count (input.VertexCount )
          let terminalNodes = 
              Array.init input.VertexCount (fun i -> Array.init input.VertexCount (fun i -> Array.zeroCreate<int<nodeMeasure>> parser.TermCount) ) 
              //Array3D.zeroCreate<int<nodeMeasure>> input.VertexCount input.VertexCount parser.TermCount  
          let currentGSSNode = ref <| dummyGSSNode
          let currentContext = ref <| new Context(!currentVertexInInput, !structures.CurrentLabel, !currentGSSNode, structures.Dummy) //without *1<labelMeasure>
          
  
negative.code:                 else
                      let newList = new ResizableUsualOne<_>(z)
                      setP.Add(vertexKey, newList)
                  let outEdges = edges.[slots.[int u.NontermLabel]].[u.Level]
                  for edge in outEdges do
                      let sppfNodeOnEdge = edge.Key
                      for slotLevels in edge.Value do
  