A structure type is a record datatype composing a number of
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-specific accessor and mutator
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. A structure type’s fields are
essentially unnamed, though names are supported for error-
reporting purposes. The constructor procedure takes one value
for each field of the structure type, except that some of the
fields of a structure type can be automatic fields; the
automatic fields are initialized to a constant that is
associated with the structure type, and the corresponding
arguments are omitted for the constructor procedure. All
automatic fields in a structure type follow the non-automatic
fields. A stru