Record pattern matching

It is possible to pattern match on a record, this allows for the extraction of multiple field values from a record into distinct variables, similar to matching on a tuple or a list.

The let key word can only match on single variant custom types. For types with more variants a case expression must be used.

It is possible to use underscore _ or the spread syntax .. to discard fields that are not required.