fix errors in (language scheme translate) introduced in pmatchification
authorAndy Wingo <wingo@pobox.com>
Sun, 4 May 2008 12:28:16 +0000 (14:28 +0200)
committerAndy Wingo <wingo@pobox.com>
Sun, 4 May 2008 12:28:16 +0000 (14:28 +0200)
* module/language/scheme/translate.scm (trans-pair): Fix some errors
  introduced in pmatchification.

module/language/scheme/translate.scm

index 246b0e0..7f84437 100644 (file)
     ((define define-private) ;; what is define-private?
      (pmatch tail
        ;; (define NAME VAL)
-       ((,sym ,val) (guard (symbol? sym))
+       ((,name ,val) (guard (symbol? name))
         (make-ghil-define e l (ghil-lookup e name) (trans:x val)))
 
        ;; (define (NAME FORMALS...) BODY...)
 
        ;; (let ((SYM VAL) ...) BODY...)
        ((,bindings . ,body) (guard (valid-bindings? bindings))
-        (let ((vars (map car bindings))
-              (vals (map trans:x (map cadr bindings))))
-          (call-with-ghil-bindings e sym
+        (let ((vals (map trans:x (map cadr bindings))))
+          (call-with-ghil-bindings e (map car bindings)
             (lambda (vars)
               (make-ghil-bind e l vars vals (trans:body body))))))
        (else (bad-syntax))))
                                (let () (void) ,@result)
                                (let () (void) ,@body
                                     (_l ,@(map next sym update)))))))
-              (_l ,@init)))))
+              (_l ,@val)))))
        (else (bad-syntax))))
 
     ;; (lambda FORMALS BODY...)