anchor.diff:  
   //--Переименование терминалов в нетерминалы в неподходящих правилах---------------------------
   
  -let renameTerm (ruleList: Rule.t<_, _> list) = 
  +let renameTerm ruleList = 
       
       let isToken (elem: elem<_, _>) = match elem.rule with PToken(_, _) -> true | x -> false
       let isRef (elem: elem<_, _>) = match elem.rule with PRef(_, _) -> true | x -> false
  
positive.code:                 
  let deleteChainRule (ruleList: Rule.t<_, _> list) = 
      
      let rec newRule (mainRule: Rule.t<_, _>) (name: string)  = 
          ruleList |> List.collect
              (fun rule ->
  
  
negative.code: 
  let toCNF (ruleList: Rule.t<_, _> list) = 
  
      let cnf rules =    
          let i = ref 0
          let list2 = ref []
          let rec newRule (rule: Rule.t<_, _>) =  
              let elements = match rule.body with PSeq(e, a, l) -> e | x -> [] 
              let addRule elem1 elem2 =
                  incr i
                  list2 :=
                      [{
  