The Macrological Fascicle

Editorial conventions

The phrase ‘it is an error’ as traditionally used in Scheme reports has been retired in this fascicle. In its place we have adopted a three-way distinction between requirements on implementations, which should be familiar from the specifications of other languages including Common Lisp and C.

As in the R7RS small language report, the phrase ‘an error is signalled’ continues to refer to a situation in which an exception is required to be raised.

The R7RS Large Foundations will incorporate a revised version of the R6RS condition types which is compatible with the error objects defined by the small language report, but this is not yet specified and will be included in a future fascicle. However, the phrase ‘it is a syntax violation’ or ‘a syntax violation is signalled’ means that an exception is raised with condition type &syntax as in the R6RS.

The phrase ‘domain error’ (or ‘it is a domain error’) refers to using a procedure with an argument value which is outside the specified range of possible values for that argument. It is not yet specified what concrete action implementations should take in this case in the R7RS Large Foundations. Preliminarily, implementations are encouraged to signal an error with condition type &assertion as in the R6RS, but this is not a requirement. The circumstances, if any, in which a domain error is required to signal an error will likewise be established in a future fascicle.

The following variable names are used in the specifications of procedures to imply the type of the argument named by that variable:

Variable Type
id identifier
proc procedure
stx syntax object
symbol symbol

[Editorial note: Cross reference each entry in the right hand column to where that type is defined in the text, where possible. ]

It is a domain error if an argument to any procedure does not match the expected type, whether the expected type is implied by the use of a variable name listed in this table, or named explicitly in the specification text.

The key words ‘must’, ‘must not’, ‘required’, ‘shall’, ‘shall not’, ‘should’, ‘should not’, ‘recommended’, ‘may’, and ‘optional’ in this document, although not capitalized in this report, are to be interpreted as described in RFC 2119. (Bradner 1997)

Comments of the form ‘[Editorial note: ... ]’ are editorial notes marking places requiring revision in the final report.