Pattern aliases

The as operator can be used to assign sub patterns to variables.

The pattern [_, ..] as first will match any non-empty list and assign that list to the variable first.