From 1d367003e9fc5f87d478f8279e6d5ea11491382e Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Sat, 9 Jan 2016 22:23:55 -0500 Subject: [PATCH] Add some additional clarification on `unsafe-provide`. --- .../typed-racket/scribblings/reference/unsafe.scrbl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/typed-racket-doc/typed-racket/scribblings/reference/unsafe.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/unsafe.scrbl index f0cd2209..4d417c46 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/unsafe.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/unsafe.scrbl @@ -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)