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.