diff --git a/collects/typed-scheme/rep/type-rep.ss b/collects/typed-scheme/rep/type-rep.ss index 1bc93feae5..58528227ce 100644 --- a/collects/typed-scheme/rep/type-rep.ss +++ b/collects/typed-scheme/rep/type-rep.ss @@ -43,7 +43,7 @@ ;; rator is a type ;; rands is a list of types ;; stx is the syntax of the pair of parens -(dt App ([rator Type?] [rands (listof Type?)] [stx syntax?]) +(dt App ([rator Type?] [rands (listof Type?)] [stx (or/c #f syntax?)]) [#:intern (list rator rands)] [#:frees (combine-frees (map free-vars* (cons rator rands))) (combine-frees (map free-idxs* (cons rator rands)))] diff --git a/collects/typed-scheme/typecheck/tc-lambda-unit.ss b/collects/typed-scheme/typecheck/tc-lambda-unit.ss index 66ce896383..d0d4d7244b 100644 --- a/collects/typed-scheme/typecheck/tc-lambda-unit.ss +++ b/collects/typed-scheme/typecheck/tc-lambda-unit.ss @@ -285,11 +285,11 @@ (define (tc/rec-lambda/check form formals body name args ret) (with-lexical-env/extend (syntax->list formals) args - (let ([t (->* args ret)]) + (let* ([t (make-arr args ret)] + [ft (make-Function (list t))]) (with-lexical-env/extend - (list name) (list t) - (begin (tc-exprs/check (syntax->list body) ret) - (make-Function (list t))))))) + (list name) (list ft) + (begin (tc-exprs/check (syntax->list body) ret) ft))))) ;(trace tc/mono-lambda) diff --git a/collects/typed-scheme/utils/utils.ss b/collects/typed-scheme/utils/utils.ss index 8cb1559cc4..485bc20b7f 100644 --- a/collects/typed-scheme/utils/utils.ss +++ b/collects/typed-scheme/utils/utils.ss @@ -166,7 +166,7 @@ [(_ val) #'(? (lambda (x) (equal? val x)))]))) -(define-for-syntax printing? #f) +(define-for-syntax printing? #t) (define print-type* (box (lambda _ (error "print-type* not yet defined")))) (define print-effect* (box (lambda _ (error "print-effect* not yet defined"))))