"A pattern declares one or multiple *variables*. Destructuring statements, assertions, and some control structures can instantiate the pattern, possibly *destructuring* the original value in the process. The simplest and most common form is the [[VariablePattern]]. Examples: e String line k->v [first, *rest] name->[lat, lon]" shared abstract class Pattern() of VariablePattern | TuplePattern | EntryPattern extends Node() { }