Metavariables

Wild cards notated '?1', '?2', etc. may be used in production rules. A wild card may be replaced with any terminal symbol, simple note, variable, bracket, out-time object, synchronisation tag, time-pattern or performance parameter. For example, a rule like

?1 ?2 ?3 ?1 --> (= ?1) (= ?2) ?3 * (: ?2) (: ?1)

rewrites "X Y Z X" as "(= X) (= Y) Z * (: Y) (: X)". (Symbol '*' is an homomorphism.)

'?' is an old notation that may be replaced with '?n' for any value of n.