newPerson constructs a new person record with the given name.
This syntax creates a new record.
You can name the fields when initializing a record.
Omitted fields will be zero-valued.
Using @ yields a pointer to the record.
It’s idiomatic to encapsulate new record creation in constructor functions
Access record fields with a dot.
You can also use dots with record pointers - the pointers are automatically dereferenced.
Records are mutable.
If a record type is only used for a single value, we don’t have to give it a name. The value can have an anonymous record type. This technique is commonly used for table-driven tests.