anchor.diff:      
       //--Список эпсилон-правил входящих в данное правило--------------------------------------------     
   
  -    let rec epsInRule (elements: elem<_,_> list) = 
  +    let rec epsInRule (elements: elem<_, _> list) = 
           elements |> List.collect
                       (fun elem ->
                           match elem.rule with
  -                        |PSeq(e,a,l) -> epsInRule e
  -                        |PRef(t,_) -> isEps (fst t)
  +                        |PSeq(e, a, l) -> epsInRule e
  +                        |PRef(t, _) -> isEps (fst t)
                           |x -> []
                       )
                           
       //--Функция для добавления нового правила------------------------------------------------------
   
  -    let newRule (rule: Rule.t<_,_>) (epsRef: string list) = 
  +    let newRule (rule: Rule.t<_, _>) (epsRef: string list) = 
           incr index
           [{
               Rule.t.name="newEpsRule" + (!index).ToString()
               Rule.t.args=[]
               Rule.t._public=false
               Rule.t.metaArgs=[] 
  -            Rule.t.body=PSeq([],None,None)
  +            Rule.t.body=PSeq([], None, None)
           }]
   
       //--Добавляем новые правила--------------------------------------------------------------------
  -
  -    ruleList |> List.collect
  +    
  +    reductionRule ruleList |> List.collect
           (fun rule -> 
  -            print ("Rule: [" + rule.name + "]")
               match rule.body with
               |PSeq(elements, actionCode, lbl) when not elements.IsEmpty -> 
  -                print (epsInRule elements)
                   newRule rule (epsInRule elements) @ [rule]
               |x -> []
           )
  
positive.code: //  Copyright 2011, 2012 Avdyukhin Dmitry
  //
  //  This file is part of YaccConctructor.
  //
  //  YaccConstructor is free software:you can redistribute it and/or modify
  //  it under the terms of the GNU General Public License as published by
  
negative.code: let toCNF (ruleList: Rule.t<_, _> list) = 
      let cnf (rules: Rule.t<_, _> list) = rules
      ruleList
      |> reductionRule
      |> deleteEpsRule
      |> deleteChainRule
      |> cnf
  