anchor.diff:      // возвращает нетерминал A правила A->BC, правило из i-го элемента массива указанной ячейки
       let getCellRuleTop (cellContent:ResizeArray<CellData>) i =
           let curRuleNum,_,_,_ = getData cellContent.[cellContent.Count - 1 - i].rData
  -        let curNT,_,_,_,_ = getRule rules.[(int)curRuleNum]
  +        let curNT,_,_,_,_ = getRule rules.[int curRuleNum]
           curNT
   
       // возвращает i-ые состояние метки, метку и вес массива указанной ячейки
  
positive.code:         else 
              let left = ResizeArray.tryFind (fun (x:CellData) -> 
                                              let ind,lSt,lbl,_ = getData x.rData
                                              //let lblCheck = (lbl = lblValue)
                                              let top,_,_,_,_ = getRule rules.[int ind]
                                              let topCheck = (top = b)
                                              (*lblCheck &&*) 
                                              topCheck) recTable.[leftI,leftL]
              let right =                
                      ResizeArray.tryFind (fun (x:CellData) -> 
                                                  let ind,lSt,lbl,_ = getData x.rData
                                                  //let lblCheck = (lbl = lblValue)
                                                  let top,_,_,_,_ = getRule rules.[int ind]
                                                  let topCheck = (top = c)
                                                  ((*lblCheck &&*) topCheck)) recTable.[rightI,rightL]
  
              
              match right with
  
negative.code:                 let count1 = left.Count
                  let count2 = right.Count
  
                  if count1 > 0 && count2 > 0
                  then
                      for m in 0..(count1 - 1) do
                          for n in 0..(count2 - 1) do
  