anchor.diff:          out 0 lastIndex
   
       let print lblValue weight leftI rightL leftL =
  -        let out = "label = " + lblString ((int lblValue) - 1) + " weight = " + string weight 
  -                    + " left = " + string leftI + " right = " + string (leftI+rightL+leftL+1)
  +        let out = String.concat " " ["label ="; lblString lblValue; "weight ="; string weight; 
  +                    "left ="; string leftI; "right ="; string (leftI+rightL+leftL+1)]
           printfn "%s" out
   
       let rec trackLabel i l (cell:CellData)  flag =
  
positive.code:                 |LblState.Conflict -> "conflict"
                  |_ -> ""
  
              String.concat " " [stateString; string lbl; string weight]
              
          let rec out i last = 
              if i <= last
  
negative.code:     let lblString lbl = 
          match lblNameArr with
          | [||] -> "0" 
          | _ -> 
                  match lbl with 
                  | 0uy -> "0"
                  | _ -> lblNameArr.[(int lbl) - 1]
  
      // возвращает нетерминал A правила A->BC, правило из i-го элемента массива указанной ячейки
      let getCellRuleTop (cellContent:ResizeArray<CellData>) i =
  