Pattern matching macros are compiled into if-expressions that decompose the value being matched with standard Scheme procedures, and test the components with standard predicates. Rebinding or lexically shadowing the names of any of these procedures will change the semantics of the match macros. The names that should not be rebound or shadowed are:
Additionally, the code generated to match a structure pattern like refers to the names Foo?, Foo-1 through Foo-n, and set-Foo-1! through set-Foo-n!. These names also should not be shadowed.