Alternative patterns can be given for a case clause using the | operator. If any of the patterns match then the clause matches.

When matching on multiple subjects there must be the same number of patterns as there are subjects. Try removing one of the _, sub-patterns to see the compile time error that is returned.

If a pattern defines a variable then all of the alternative patterns for that clause must also define a variable with the same name and same type.

Currently it is not possible to have nested alternative patterns, so the pattern [1 | 2 | 3] is not valid.