anchor.diff:          | PMetaRef (mn, p, mArgs) -> expandMetaRef mn p mArgs
           | PSeq (seq, a) -> 
             let rec expandSeq mRulesTbl rfsTbl rs = function
  -          | h::t -> 
  -            let (b, res') = expandMeta h.rule mRulesTbl rfsTbl rs in 
  +          | h::t ->                         
  +            let (b, res') = expandMeta h.rule mRulesTbl rfsTbl rs
               let (b', res'') = expandSeq mRulesTbl rfsTbl res' t
  -            in ({ h with rule = b }::b', res'')
  +            //it is hack for filtering similar results.
  +            ({ h with rule = b }::b', res'' (*|> set |> List.ofSeq*))
             | [] -> ([], rs)
             in let (eSeq, res') = expandSeq metaRulesTbl refsTbl res seq      
                in (PSeq (eSeq, a), res')
           
  -        | PAlt (l, r) -> let (l', res') = expandMeta l metaRulesTbl refsTbl res in
  +        | PAlt (l, r) -> let (l', res') = expandMeta l metaRulesTbl refsTbl res                         
                            let (r', res'') = expandMeta r metaRulesTbl refsTbl res'
  -                         in (PAlt(l', r'), res'')
  +                         (PAlt(l', r'), res'')
           | POpt r  -> let (r', res') = expandMeta r metaRulesTbl refsTbl res 
                        in (POpt r', res')
           | PSome r -> let (r', res') = expandMeta r metaRulesTbl refsTbl res 
  
positive.code:         | None -> []
  
      and expandMetaRef metaName _params metaArgs' = 
          let key = getKey metaName metaArgs' in                
          if refsTbl.ContainsKey(key) then (PRef (refsTbl.Item key, _params), res)
          else
            let rName = createNewName metaName in       
            let eRules = refsTbl.Add(key,rName) ;
                         genNewRule (getText rName) _params 
                                    metaRulesTbl (getText metaName) metaArgs' 
            in let b = PRef (rName, _params) 
               in (b, res @ eRules)
          
  
      in
  
negative.code:           args = createPairsList metaRule.name metaRule.metaArgs metaArgs 
          in 
          let fArgs = getFormalArgs metaRule.name _params metaRule.args
          let args' = list2opt fArgs
          let (b, newRules) = transformBody rName args' args [] metaRule.body 
          ( newRules @ [ createRule rName fArgs b metaRule._public [] ] )
  
      and genNewRule rName args' mRulesTbl metaName' metaArgs =
          let res = findMetaRule mRulesTbl metaName' in 
  