## 6.2 Extensions to the standard

[2.1] Identifiers may contain special characters if delimited with `| ... |`.

[2.3] The brackets `[ ... ]` are provided as an alternative syntax for `( ... )`. A number of reader extensions is provided. See 6.3.

[4] Numerous non-standard macros are provided. See 6.4 for more information.

[4.2.3] `(begin)` is allowed in non-toplevel contexts and evaluates to an unspecified value.

[4.2.5] Delayed expressions may return multiple values.

[5.2.1] A `define` occurring anywhere but at the beginning of a `lambda`- or `let`-body is in every aspect equivalent to `set!`.

[5.2.2] `define-values` may be used in internal definitions if the R5RS macro system is not used.

[6] CHICKEN provides numerous non-standard procedures. See the manual sections on library units for more information.

[6.3.4] User defined character names are supported. See `char-name`.

[6.3.5] CHICKEN supports special characters preceded with a backslash ``'' in quoted string constants. `n` denotes the newline-character and `t` is equivalent to the TAB character.

[6.4] `force` called with an argument that is not a promise returns that object unchanged. Captured continuations can be safely invoked inside before- and after-thunks of a `dynamic-wind` form and execute in the outer dynamic context of the `dynamic-wind` form.

[6.5] The second argument to `eval` is optional and defaults to the value of `(interaction-environment)`. `scheme-report-environment` and `null-environment` accept an optional 2nd parameter: if not `#f` (whish is the default), toplevel bindings to standard procedures are mutable and new toplevel bindings may be introduced.

[6.6.1] if the procedures `current-input-port` and `current-output-port` are called with an argument (which should be a port), then that argument is selected as the new current input- and output-port, respectively. The procedures `open-input-file`, `open-output-file`, `with-input-from-file`, `with-output-to-file`, `call-with-input-file` and `call-with-output-file` accept an optional second (or third) argument which should be one or more keywords, if supplied. These arguments specify the mode in which the file is opened. Possible values are the keywords `#:text`, `#:binary` or `#:append`.