From 9d0900650fbaf9cdaa2bd35a0262f976ae4efc30 Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Wed, 22 May 2013 09:31:13 -0400 Subject: [PATCH] Document :type better original commit: a40a1341f6bae61c0a8c5660182080003fae7c70 --- .../reference/exploring-types.scrbl | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/collects/typed-racket/scribblings/reference/exploring-types.scrbl b/collects/typed-racket/scribblings/reference/exploring-types.scrbl index 2204cece..75752611 100644 --- a/collects/typed-racket/scribblings/reference/exploring-types.scrbl +++ b/collects/typed-racket/scribblings/reference/exploring-types.scrbl @@ -1,15 +1,37 @@ #lang scribble/manual @begin[(require "../utils.rkt") + (require scribble/eval) (require (for-label (only-meta-in 0 [except-in typed/racket for])))] +@(define the-top-eval (make-base-eval)) +@(the-top-eval '(require (except-in typed/racket #%module-begin))) + @title{Exploring Types} In addition to printing a summary of the types of REPL results, Typed Racket provides interactive utilities to explore and query types. The following bindings are only available at the Typed Racket REPL. -@defform[(:type t)]{Prints the type @racket[_t].} +@defform[(:type maybe-verbose t) + #:grammar ([maybe-verbose (code:line) + (code:line #:verbose)])]{ + Prints the type @racket[_t]. If @racket[_t] is a type alias + (e.g., @racket[Number]), then it will be expanded to its representation + when printing. Any further type aliases in the type named by @racket[_t] + will remain unexpanded. + + If @racket[#:verbose] is provided, all type aliases are expanded + in the printed type. + + @examples[#:eval the-top-eval + ;; I'm not sure why, but the :type examples below don't work + ;; without the #%top-interaction in the first example + (eval:alts (:type Number) (#%top-interaction . (:type Number))) + (:type Real) + (:type #:verbose Number) + ] +} @defform[(:print-type e)]{Prints the type of @racket[_e]. This prints the whole type, which can sometimes be quite large.} @@ -20,3 +42,6 @@ types @racket[t], shows the result type of @racket[f].} @defform[(:query-type/result f t)]{Given a function @racket[f] and a desired return type @racket[t], shows the arguments types @racket[f] should be given to return a value of type @racket[t].} + +@close-eval[the-top-eval] +