diff --git a/expression-structs.rkt b/expression-structs.rkt index 7f34250..28d8002 100644 --- a/expression-structs.rkt +++ b/expression-structs.rkt @@ -49,7 +49,7 @@ #:transparent) (define-struct: LetRec ([count : Natural] - [rhss : (Listof ExpressionCore)] + [rhss : (Listof Lam)] [body : ExpressionCore]) #:transparent) diff --git a/test-parse.rkt b/test-parse.rkt index e2b1b45..09474fc 100644 --- a/test-parse.rkt +++ b/test-parse.rkt @@ -254,4 +254,15 @@ ;; stack layout [???, x_1, x_0, prefix] (make-App (make-ToplevelRef 3 0) - (list (make-LocalRef 1))))))) \ No newline at end of file + (list (make-LocalRef 1))))))) + + +(test (parse '(let* () + 42)) + (make-Top (make-Prefix '()) (make-Constant 42))) + + +(test (parse '(letrec ([x (lambda (x) x)] + [y (lambda (x) x)]))) + (make-Top (make-Prefix '()) + \ No newline at end of file