Tuples are lightweight, structural types. To be precise, they are types made up of other types, joined together within parentheses in a particular order, separated by commas, and without field names. The tuple value syntax is very simple–open parenthesis, comma-separated list of values, close parenthesis. In fact, the value syntax closely mimics the type of the tuples themselves.
Tuple pronunciation varies depending on who you ask, but I usually pronounce it to rhyme with couple.
Why would we use tuples when we have record types with field names? Sometimes, we don't want to spin up a new type, with a definition, just to hold some values together. Tuples are a low-ceremony way to do that. But the danger of using them over larger portions of a codebase is that they're not self-describing like record types are. Here's an example:
/* src/Ch04/Ch04_Tuples...