A structure type is a record datatype composed of a number of named fields. A structure, an instance of a structure type, is a first-class value that contains a value for each field of the structure type. A structure instance is created with a type-specific constructor procedure, and its field values are accessed and changed with type- and field-specific selector and setter procedures. In addition, each structure type has a predicate procedure that answers #t for instances of the structure type and #f for any other value.