diff options
Diffstat (limited to 'csc/cps.csc')
| -rw-r--r-- | csc/cps.csc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/csc/cps.csc b/csc/cps.csc index e7f0fe6..81ba933 100644 --- a/csc/cps.csc +++ b/csc/cps.csc @@ -10,6 +10,7 @@ insert key-not-found-error? lookup + make-comparer make-map map->alist merge) @@ -315,14 +316,18 @@ (_ (error "unexpected type in to-cps" expr)))) - (define (make-ref-map) - (make-map + (define compare-refs + (make-comparer (lambda (ref) (gensym->int (lexical-ref-gensym ref))) (lambda (x y) (- (gensym->int (lexical-ref-gensym y)) (gensym->int (lexical-ref-gensym x)))))) + (define (make-ref-map) + (make-map compare-refs)) + + (define (get-boxed expr) (match expr ((% %update ref _ continuation) |
