## Special named constants

Constant: `#!optional`

> Special self-evaluating literal used in lambda parameter lists before optional parameters.

Constant: `#!rest`

> Special self-evaluating literal used in lambda parameter lists before the rest parameter.

Constant: `#!key`

> Special self-evaluating literal used in lambda parameter lists before keyword parameters.

Constant: `#!eof`

> The end-of-file object.

> Note that if the Scheme reader sees this literal at top-level, it is returned literally. This is indistinguishable from coming to the end of the input file. If you do not want to end reading, but want the actual value of `#!eof`, you should quote it.

Constant: `#!void`

> The void value. Same as `(values)`. If this is the value of an expression in a read-eval-print loop, nothing is printed.

Constant: `#!null`

> The Java `null` value. This is not really a Scheme value, but is useful when interfacing to low-level Java code.