_ Wilcard, matches everything leaving no trace
x Variable, matches and remembers the value
x@<pattern> Variable, the contents must match the pattern
1 (Integer) number
"hello" String
'a' Character
Person <pattern> .. Record, all arguments must be present and in order
Person { name = <pattern>, .. } Record, may match only a subset of fields
(<pattern>, <pattern>, ..) Tuple, matches the exact amount of elements
[<pattern>, <pattern>, ..] List, matches specific length
<pattern> : <pattern> List, matches head and tail
first pattern to match the value
bindings to variables are returned
pattern matches the value, but it is not the first
pattern does not match the value
each pair of non-matching elements is returned
pattern is not type-compatible with the value
only available when it can be statically checked
input cannot be parsed or is unsupported