anchor.diff:              if (isMetaRule h) then 
                   replaceMeta t (metaRulesTbl,refsTbl) res      
               else 
  -                printfn "-%s" h.name
  +//                printfn "-%s" h.name
                   let (b, rules) = expandMeta (h:Rule.t<Source.t,Source.t>).body metaRulesTbl refsTbl [] []
                   let r = { h with Rule.body = b }
                   replaceMeta t (metaRulesTbl,refsTbl) (res @ rules @ [r])
  -        printfn "%s" h.name
  +//        printfn "%s" h.name
           res
   
   (** main function 
  
positive.code:  
      /// returns (ref to new rule, list of generated rules)
      and expandMetaRef res (metaName:Source.t) _params (metaArgs':t<Source.t, Source.t> list) args =
          printfn "r %A" metaName
          let key = getKey metaName metaArgs'
          // checks if we already expanded rule with given name and meta args
          if refsTbl.ContainsKey(key) then
  
negative.code:     | [] -> ()
      | h::t -> 
          if (isMetaRule h) then 
  //            printfn "+%s" h.name
              metaRulesTbl.Add(h.name,h)        
          collectMeta t (metaRulesTbl,refsTbl)
  //        printfn "%s" h.name
  
  let rec replaceMeta rules ((metaRulesTbl:Dictionary<string,Rule.t<Source.t,Source.t> >),refsTbl) res = 
      match rules with 
  