anchor.diff:   //посчитать размерв коллекций
           let edgesReadCount = ref 0
           let edgesWriteCount = ref 0
  -        let edges = new Dictionary<int64<vertexMeasure>, Dictionary<int<nodeMeasure>, Dictionary<int<labelMeasure>, ResizeArray<int>>>>()
  +        let edges = Array2D.zeroCreate<Dictionary<int<nodeMeasure>, Dictionary<int<labelMeasure>, ResizeArray<int>>>> slots.Count (inputLength + 1)
           
           let terminalNodes = new BlockResizeArray<int<nodeMeasure>>()
           let epsilonNode = new TerminalNode(-1, packExtension 0 0)
  
positive.code:                     let newList = new ResizeArray<int<nodeMeasure>>()
                      newList.Add(z)
                      setP.Add(vertexKey, newList)
                  let outEdges = edges.[packVertex slots.[ int u.Label] u.Level]
                  edgesReadCount := !edgesReadCount + 1
                  for edge in outEdges do
                      let sppfNodeOnEdge = edge.Key
  
negative.code:             let k = getRightExtension rightExtension
              let rule = getRule label
              let d =
                  let d1 = packedNodes.[i]
                  if d1 <> Unchecked.defaultof<_>
                  then
                      let contains, d2 = d1.TryGetValue j
                      if contains
  