The =newname= strategy is a variant of the =new= strategy, which generates a new unique string. Newname generates unique strings, just like new, but it also accepts a prefix that will be part of the generated string. By default, the numbering is also done per prefix. For example, if you apply =newname= three times to the string ="foo"=, then the results will be ="foo_0"=, ="foo_1"= and ="foo_2"=. If =newname= is applied to ="bar"= after this, then the result will be ="bar_0"=, not ="bar_4"=. Thus, The =newname= strategy is very useful for generating more user-friendly, unique names in a program transformation. The library strategy =newname= trims any trailing digits up to the rightmost '_'. Hence, repeated application of =newname= will not result in mutiple numeric postfixes (for example =a_0_0=) Example "a" // produces "a_0" ; "b" // produces "b_0" ; "b_1" // produces "b_2" ; "b_1729" // produces "b_3" ; "b_a" // produces "b_a_0"