Normally, all files have a line
(declare (usual-integrations))
near their beginning, which tells the compiler that free variables whose
names are defined in system-global-environment will not be
shadowed by other definitions when the program is loaded. If you
redefine some global name in your code, for example car,
cdr, and cons, you should indicate it in the declaration:
(declare (usual-integrations car cdr cons))
You can obtain an alphabetically-sorted list of the names that the
usual-integrations declaration affects by evaluating the
following expression:
(eval '(sort (append usual-integrations/constant-names
usual-integrations/expansion-names)
(lambda (x y)
(string<=? (symbol->string x)
(symbol->string y))))
(->environment '(scode-optimizer)))