diff --git a/collects/typed-scheme/typed-scheme.rkt b/collects/typed-scheme/typed-scheme.rkt index 1d20a7af..875466a9 100644 --- a/collects/typed-scheme/typed-scheme.rkt +++ b/collects/typed-scheme/typed-scheme.rkt @@ -14,12 +14,15 @@ with-type (for-syntax do-standard-inits)) +(define-for-syntax initialized #f) (define-for-syntax (do-standard-inits) - (initialize-special) - ((dynamic-require 'typed-scheme/base-env/base-structs 'initialize-structs)) - ((dynamic-require 'typed-scheme/base-env/base-env-indexing 'initialize-indexing)) - ((dynamic-require 'typed-scheme/base-env/base-env 'init)) - ((dynamic-require 'typed-scheme/base-env/base-env-numeric 'init))) + (unless initialized + (initialize-special) + ((dynamic-require 'typed-scheme/base-env/base-structs 'initialize-structs)) + ((dynamic-require 'typed-scheme/base-env/base-env-indexing 'initialize-indexing)) + ((dynamic-require 'typed-scheme/base-env/base-env 'init)) + ((dynamic-require 'typed-scheme/base-env/base-env-numeric 'init)) + (set! initialized #t))) (define-syntax-rule (drivers [name sym] ...) (begin