diff --git a/collects/typed-scheme/scribblings/reference/special-forms.scrbl b/collects/typed-scheme/scribblings/reference/special-forms.scrbl index 55a844f1..37292f81 100644 --- a/collects/typed-scheme/scribblings/reference/special-forms.scrbl +++ b/collects/typed-scheme/scribblings/reference/special-forms.scrbl @@ -1,8 +1,8 @@ #lang scribble/manual @begin[(require "../utils.rkt" scribble/eval racket/sandbox) - (require (for-label (only-meta-in 0 [except-in typed/racket for]) - (only-in racket/base for)))] + (require (for-label (only-meta-in 0 [except-in typed/racket]) + (only-in racket/base)))] @(define the-eval (make-base-eval)) @(the-eval '(require (except-in typed/racket #%top-interaction #%module-begin))) @@ -13,6 +13,15 @@ (examples #:eval the-top-eval . args)) +@(define-syntax-rule (def-racket for-id for*-id with-handlers-id) + (begin + (require (for-label (only-in racket/base for for* with-handlers))) + (define for-id (racket for)) + (define for*-id (racket for*)) + (define with-handlers-id (racket with-handlers)))) +@(def-racket for-id for*-id with-handlers-id) + + @title[#:tag "special-forms"]{Special Form Reference} Typed Racket provides a variety of special forms above and beyond @@ -178,6 +187,12 @@ These behave like their non-annotated counterparts. Unlike the above, These behave like their non-annotated counterparts. } +@deftogether[[ +@defidform[for] +@defidform[for*]]]{ +These are identical to @|for-id| and @|for*-id|, but provide additional annotations to help the typechecker. +} + @defform/subs[(do: : u ([id : t init-expr step-expr-maybe] ...) (stop?-expr finish-expr ...) expr ...+) @@ -366,4 +381,10 @@ a @racket[require/typed] form. Here is an example of using @racket[file-or-directory-modify-seconds] has some arguments which are optional, so we need to use @racket[case->].} +@section{Other Forms} + +@defidform[with-handlers]{ +Identical to @|with-handlers-id|, but provides additional annotations to help the typechecker. +} + @(close-eval the-eval) diff --git a/collects/typed-scheme/scribblings/reference/types.scrbl b/collects/typed-scheme/scribblings/reference/types.scrbl index d435a70f..06fdb4fd 100644 --- a/collects/typed-scheme/scribblings/reference/types.scrbl +++ b/collects/typed-scheme/scribblings/reference/types.scrbl @@ -126,6 +126,7 @@ default in Racket. @defidform[Port] @defidform[Path] @defidform[Path-String] +@defidform[Path-For-Some-System] @defidform[Regexp] @defidform[PRegexp] @defidform[Byte-Regexp] @@ -141,6 +142,10 @@ default in Racket. @defidform[Module-Path-Index] @defidform[Compiled-Module-Expression] @defidform[Resolved-Module-Path] +@defidform[Pretty-Print-Style-Table] +@defidform[Special-Comment] +@defidform[Struct-Type-Property] +@defidform[Read-Table] @defidform[Thread])]{ These types represent primitive Racket data.