Example

As a simple example, imagine a language of identity statements of the style

         total=price+tax+shipping
         tax=price×10÷100
         shipping=5
      

expressed by this grammar that uses the definition of expr from another module:

         +uses expr from expr.ixml
             data: identity+.
         identity: id, -"=", expr, -#a.
               id: [L]+.
      

The only problem is that the expr module has a clashing rule for id:

         +shares expr
         expr: id++op.
           id: [L; Nd]+.
           op: ["+-×÷"].
      

Since the invoking grammar never gets changed, the rule in the module gets renamed, resulting in the following complete grammar:

             data: identity+.
         identity: id, -"=", expr, -#a.
               id: [L]+.

             expr: id_++op.
           id_>id: [L; Nd]+.
               op: ["+-×÷"].
      

If the module's rule for id had instead been a renaming, it could have looked like this:

         id>ident: [L; Nd]+.
      

and the renaming would have ended up as:

         id_>ident: [L; Nd]+.