It is required that every implementation of Scheme support
features that are marked as being essential. Features not
explicitly marked as essential are not essential. Implementations are
free to omit non-essential features of Scheme or to add extensions,
provided the extensions are not in conflict with the language reported
here. In particular, implementations must support portable code by
providing a syntactic mode that preempts no lexical conventions of this
report and reserves no identifiers other than those listed as syntactic
keywords in section .