Next: , Up: expander lexenv internal   [Index]


15.3.6.1 Internal syntactic bindings: lexical variables

A syntactic binding representing a variable binding as created by let and similar syntaxes, lambda, case-lambda or define, has descriptor with format:

(lexical . (?lexvar . ?assigned))

where: ?lexvar is a lexical gensym representing the name of the lexical variable binding in the expanded code; ?assigned is a boolean, true if somewhere in the code the variable is assigned (that is: its value is mutated).

We want to keep track of assigned variables because we do not want to export from a library a mutable variable.