(index ("make-record-type" 0) ("record-constructor" 399) ("record-predicate" 1154) ("record-accessor" 1478) ("record-modifier" 2014))
(def (sig (procedure "(make-record-type type-name field-names)" (id make-record-type))) (p "Returns a \"record-type descriptor\", a value representing a new datatype disjoint from all others.  The TYPE-NAME argument must be a symbol or a string. The FIELD-NAMES argument is a list of symbols naming the \"fields\" of a record of the new type.  It is an error if the list contains any duplicates."))
(def (sig (procedure "(record-constructor rtd [field-names])" (id record-constructor))) (p "Returns a procedure for constructing new members of the type represented by RTD.  The returned procedure accepts exactly as many arguments as there are symbols in the given list, FIELD-NAMES; these are used, in order, as the initial values of those fields in a new record, which is returned by the constructor procedure.  The values of any fields not named in that list are unspecified.  The FIELD-NAMES argument defaults to the list of field names in the call to " (tt "make-record-type") " that created the type represented by RTD; if the FIELD-NAMES argument is provided, it is an error if it contains any duplicates or any symbols not in the default list."))
(def (sig (procedure "(record-predicate rtd)" (id record-predicate))) (p "Returns a procedure for testing membership in the type represented by RTD.  The returned procedure accepts exactly one argument and returns a true value if the argument is a member of the indicated record type; it returns a false value otherwise."))
(def (sig (procedure "(record-accessor rtd field-name)" (id record-accessor))) (p "Returns a procedure for reading the value of a particular field of a member of the type represented by RTD.  The returned procedure accepts exactly one argument which must be a record of the appropriate type; it returns the current value of the field named by the symbol FIELD-NAME in that record.  The symbol FIELD-NAME must be a member of the list of field-names in the call to " (tt "make-record-type") " that created the type represented by RTD."))
(def (sig (procedure "(record-modifier rtd field-name)" (id record-modifier))) (p "Returns a procedure for writing the value of a particular field of a member of the type represented by RTD.  The returned procedure accepts exactly two arguments: first, a record of the appropriate type, and second, an arbitrary Scheme value; it modifies the field named by the symbol FIELD-NAME in that record to contain the given value.  The returned value of the modifier procedure is unspecified.  The symbol FIELD-NAME must be a member of the list of field-names in the call to " (tt "make-record-type") " that created the type represented by RTD."))
