Until now, the only data types we have worked with are the integer and floating-point number types and the Bool type (for true and false). Let's broaden our repertoire.

The aggregate types are used to define multi-valued data structures having one of these forms:

The next few pages describe how to declare a named, custom aggregate type having one of these forms, construct an aggregate value, and work with the value(s) that lie within.