The [[dynamic rules]] mechanism can be used to enable a set of rules. TriggerRules = ?Context(Bla, _); rules( A : ... -> ... B : ... -> ... ) traverse = rec x({| A, B : try(TriggerRules + A + B); all(x) |}) Rules =A= and =B= are only applied after a =Context(Bla,...)= has been encountered. This is not always appropriate. Often the applicability of rules can be determined by the position in the tree. -- Main.EelcoVisser & Lennart Swart - 22 May 2002