This document describes several pattern matching macros for Scheme, and an associated mechanism for defining new forms of structured data. The basic form of pattern matching expression is: (match exp [pat body ] : : : ) where exp is an expression, pat is a pattern, and body is one or more expressions (like the body of a lambda-expression).