anchor.diff:                              , genAction "yard_head::yard_tail", None)
                   ) 
               addedBnfRules := (
  -                {new Rule.t<Source.t,Source.t> 
  -                 with name=generatedName 
  -                 and args = formList attrs
  -                 and body= newBody
  -                 and _public=false
  -                 and metaArgs = metaArgs
  +                {
  +                 name=generatedName 
  +                 args = formList attrs
  +                 body= newBody
  +                 _public=false
  +                 metaArgs = metaArgs
                   }) :: !addedBnfRules
               newRule
  +
           | POpt(p) -> 
               let generatedName = genOptName()
               let expandedBody = replaceEbnf p attrs metaArgs
  
positive.code:                             , genAction "yard_head::yard_tail", None)
                  ) 
              addedBnfRules := (
                  {new Rule.t<Source.t,Source.t> 
                   with name = generatedName 
                   and args = formList attrs 
                   and body = newBody
                   and _public=false
                   and metaArgs = metaArgs
                  }) :: !addedBnfRules
              newRule
          | PMany(p) -> 
              let generatedName = genManyName()
              let expandedBody = replaceEbnf p attrs metaArgs
  
negative.code: open Production
  open Namer
  open TransformAux
  open Yard.Core.IL.Rule
  
  let s2source s = (s, (0,0))
  let generatedSomesCount = ref 0
  