N is also legal in . N is also legal in . An option variable is a placeholder for an optional language constituent of its type. N is also legal in . A parse tree of is called a pattern .
Patterns play distinct roles in analysis and synthesis.
In analysis, a pattern is matched against a target parse tree. If the target is a substitution instance of the pattern, the match succeeds and provides a binding of each pattern variable to a subtree of the target. The target may itself be a pattern, in which case some of the bindings that result may be patterns. High level interfaces to pattern usage declare program variables of the same name as the patterns variables, making the bindings available in those program variables. In synthesis, a pattern is instantiated relative to bindings for some or all of its variables.