syntax
( require/typed/check mrt-clause...)
If you cannot know ahead of time whether m is typed or untyped but want to avoid Typed-Racket-generated contracts if m happens to be typed, this macro is worth using. Otherwise, just use require or require/typed .
All submodules of the current module are assumed untyped. The current implementation would need to compile the module’s submodules to be sure; it breaks the circular dependency by assuming the worst.
Any #:opaque imports are required via require/typed .
This form is intended for modules written in #lang typed/racket or typed/racket/base. For Shallow and Optional modules, use the other forms below.
Changed in version 0.3 of package require-typed-check: Added support for #:opaque.
(check-contractsquare)sqr does NOT have a contract
has-contract? does have a contract
The behavior of require/typed depends on the current Typed Racket language. Deep, Shallow, and Optional types have different behavior. To choose a behavior, use one of the following require/typed/check variants.
Added in version 1.0 of package require-typed-check.
Added in version 1.0 of package require-typed-check.
Added in version 1.0 of package require-typed-check.
Added in version 1.0 of package require-typed-check.
To disable require/typed/check , set the environment variable DISABLE_REQUIRE_TYPED_CHECK to any non-null value. This causes all require/typed/check forms to expand to require/typed forms.
Log events report the importing module and the syntax of the require/typed/check form. This data is package in an instance of a prefab struct: