anchor.diff:  
   let toCNF (ruleList: Rule.t<_, _> list) = 
   
  -    let cnf (rules: 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: elem<_, _>) (elem2: elem<_, _>) =
  +            let addRule elem1 elem2 =
                   incr i
                   list2 :=
                       [{
  
positive.code:                     body=numberBody
                  }
              numberEpsRef |> List.collect
                  (fun eps ->
                      addRule numberRule eps)
          else
              []
              
              
      //--Добавляем новые правила--------------------------------------------------------------------
  
negative.code:                         
      //--Функция для добавления нового правила------------------------------------------------------
  
      let newRule (rule: Rule.t<_, _>) (epsRef: list<string>) = 
          if not epsRef.IsEmpty then
              let numberEpsRef = genPermutation epsRef.Length 
              let numberBody = 
  