22 lines
704 B
Racket
22 lines
704 B
Racket
#lang racket/base
|
|
(require (for-syntax racket/base
|
|
syntax/strip-context
|
|
"../errortrace-lib.rkt"))
|
|
|
|
(provide (rename-out [module-begin #%module-begin]))
|
|
|
|
(define-syntax (module-begin stx)
|
|
(syntax-case stx ()
|
|
[(_ lang . body)
|
|
(let ([e (annotate-top
|
|
(syntax-local-introduce
|
|
(local-expand #`(module . #,(strip-context #`(n lang . body)))
|
|
'top-level
|
|
null))
|
|
0)])
|
|
(syntax-case e ()
|
|
[(mod nm lang (mb . body))
|
|
#`(#%plain-module-begin
|
|
(require (only-in lang) errortrace/errortrace-key)
|
|
. body)]))]))
|