Structural equality compares values by recursively checking the data stored in corresponding fields. F# records and tuples support it by default, unlike .NET’s default reference equality. section 5.3.2
Comparing nested records
Two record values containing the same name and address compare as equal: let areTheyTheSame = (isaac = isaacTwo) // true. The check follows nested records, tuples, and other fields until it finds a difference. section 5.3.2
This removes the need to generate equality members manually for common F# record models. When comparing an entire object graph is undesirable, equality and comparison can be disabled or customized with attributes. section 5.3.2
