(define-library (csc ir2) (export lambda-body lambda-case-alternate lambda-case-arguments lambda-case-body lambda-case-gensyms lambda-case-rest lambda-case? make-lambda-case ; Re-exports from IR1. lambda? make-lambda call-arguments call-procedure call? constant-expression constant? if-alternate if-consequent if-test if? library-ref-library library-ref-name library-ref-public? library-ref? library-set-expression library-set-library library-set-name library-set-public? library-set? make-call make-constant make-if make-library-ref make-library-set make-sequence make-toplevel-define make-void sequence-head sequence-tail sequence? toplevel-define-expression toplevel-define-name toplevel-define? void?) (import (scheme base) (only (csc ir1) call-arguments call-procedure call? constant-expression constant? if-alternate if-consequent if-test if? lambda-body lambda? library-ref-library library-ref-name library-ref-public? library-ref? library-set-expression library-set-library library-set-name library-set-public? library-set? make-call make-constant make-if make-lambda make-library-ref make-library-set make-sequence make-toplevel-define make-void sequence-head sequence-tail sequence? toplevel-define-expression toplevel-define-name toplevel-define? void?)) (begin ; This library defines the intermediate representation IR2. ; It's CPS time bitch. ; idx ; Reference to a variable by index in the closure. (define-record-type (make-closure-ref idx) closure-ref? (idx closure-ref-index)) ; arguments rest