(rapid eliminate-mutable-variables)

Eliminate mutable variables.

(eliminate-mutable-variables expr)

Boxes all mutable variables and eliminates all assignments to variables. It takes a syntax object encapsulating an expression of the input language and returns a syntax object encapsulating an expression of the output language. The input language has the following expressions: (begin ...), (if ...), (set! ...), (set-values! ...), (quote ...), (case-lambda ...), (letrec ...), (let-values ...), procedure calls, and variable references. The output language has the following expressions: (begin ...), (if ...), (quote ...), (case-lambda ...), (letrec ...), (let-values ...), procedure calls, and variable references.