Add some additional clarification on unsafe-provide.

This commit is contained in:
Sam Tobin-Hochstadt 2016-01-09 22:23:55 -05:00
parent 67d989462b
commit 1d367003e9

View File

@ -42,6 +42,17 @@ behavior and may even crash Typed Racket.
any contracts that correspond to the specified types. This means that uses of the
exports in other modules may circumvent the type system's invariants.
Additionally, importing an identififer that is exported with
@racket[unsafe-provide] into another typed module, and then
re-exporting it with @racket[provide] will not cause contracts to be
generated.
Uses of the provided identifiers in other typed modules are not
affected by @racket[unsafe-provide]---in these situations it behaves
identically to @racket[provide]. Furthermore, other typed modules
that @emph{use} a binding that is in an @racket[unsafe-provide] will
still have contracts generated as usual.
@examples[#:eval eval
(module t typed/racket/base
(require typed/racket/unsafe)