require-provide.rkt (627B)
1 #lang typed/racket 2 (require "typed-untyped.rkt") 3 (define-typed/untyped-modules 4 (provide require/provide) 5 6 (define-syntax (require/provide stx) 7 (syntax-case stx () 8 [(_ require-spec ...) 9 #'(begin 10 (require require-spec ...) 11 (provide (all-from-out require-spec ...)))])) 12 13 (module+ test 14 (require typed/rackunit) 15 (module ma typed/racket 16 (define require-provide-foo 7) 17 (provide require-provide-foo)) 18 (module mb typed/racket 19 (require (submod ".." "..")) 20 (require/provide (submod ".." ma))) 21 (require 'mb) 22 (check-equal? require-provide-foo 7)))