Default initialise all fields
Create a copy of this record and permit modification of read-only fields. +
Test for equality. Reference types are checked to ensure their references are the same (point to same thing), value types are checked to ensure their values are identical.
Compute the hash of this record. Algorithm is result = 31 * previousResult + currentField.toHash
Generate a human-readable string. Fields are sampled.
Explicitly set certain fields, default initialise the rest