www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

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)))