diff --git a/macrotypes/typecheck.rkt b/macrotypes/typecheck.rkt index 59bd361..0485c82 100644 --- a/macrotypes/typecheck.rkt +++ b/macrotypes/typecheck.rkt @@ -360,6 +360,9 @@ ;; (printf "(τ=) t2 = ~a\n" #;τ2 (stx->datum t2)) (or (and (id? t1) (id? t2) (free-id=? t1 t2)) (and (stx-null? t1) (stx-null? t2)) + (and (not (stx-pair? t1)) (not (id? t1)) + (not (stx-pair? t2)) (not (id? t1)) ; datums + (equal? (stx->datum t1) (stx->datum t2))) (syntax-parse (list t1 t2) ; handle binding types [(((~literal #%plain-lambda) (~and (_:id (... ...)) xs) . ts1) ((~literal #%plain-lambda) (~and (_:id (... ...)) ys) . ts2))