An [[anonymous rewrite rule]] is a [[rewrite rule]] that can be used inside a stategy expression. An anonymous rewrite rule of the form: \ p1 -> p2 where s \ is desugared to {x1, ..., xn : ?p1; where(s); !p2} where x1, ..., xn are the free variables of =p1=. Any free variables used in =s= and =p2=, which do not occur in =p1= are bound in the context of the anonymous rewrite rule. An anonymous rewrite rule of the form: ( p1 -> p2 where s ) is desugared to (?p1; where(s); !p2) This style doesn't imply any scope for the variables of the rule: it only provides rule-like syntax. The variables of p1, s and p2 are all bound in the context of the anonymous rewrite rule.