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.