From cbb76b987c0023a870c028598939679295dce066 Mon Sep 17 00:00:00 2001 From: Daniel Feltey Date: Sat, 12 Sep 2015 13:45:33 -0500 Subject: [PATCH] Fix tc/letrec-values contract and document require-typed-signature --- .../typed-racket/scribblings/reference/legacy.scrbl | 5 +++++ typed-racket-lib/typed-racket/typecheck/signatures.rkt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl index 8fb1756c..2103ba5b 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl @@ -181,6 +181,11 @@ keyword with @racket[require/typed].} keyword with @racket[require/typed].} @defidform[require-typed-struct/provide]{Similar to @racket[require-typed-struct], but also provides the imported identifiers.} +@defform[ +(require-typed-signature sig-name (id ...) (type ...) module)]{ +Similar to using the @racket[#:signature] keyword with @racket[require/typed]. +Signature variables are matched with their types positionally, the two lists +must have the same length.} @defidform[pdefine:]{Defines a polymorphic function.} @defform[(pred t)]{Equivalent to @racket[(Any -> Boolean : t)].} diff --git a/typed-racket-lib/typed-racket/typecheck/signatures.rkt b/typed-racket-lib/typed-racket/typecheck/signatures.rkt index 37574242..cb3781f1 100644 --- a/typed-racket-lib/typed-racket/typecheck/signatures.rkt +++ b/typed-racket-lib/typed-racket/typecheck/signatures.rkt @@ -59,7 +59,7 @@ (define-signature tc-let^ ([cond-contracted tc/let-values ((syntax? syntax? syntax?) ((or/c #f tc-results/c)) . ->* . full-tc-results/c)] - [cond-contracted tc/letrec-values ((syntax? syntax? syntax?) ((or/c #f tc-results/c)) . ->* . full-tc-results/c)])) + [cond-contracted tc/letrec-values ((syntax? syntax? syntax?) ((or/c #f tc-results/c) (-> any)) . ->* . full-tc-results/c)])) (define-signature tc-dots^ ([cond-contracted tc/dots (syntax? . -> . (values Type/c symbol?))]))