#lang racket/load (module m1 racket (require (for-syntax racket/pretty)) (define-syntax (mb stx) (syntax-case stx () [(_ forms ...) (let () (define d (local-expand #'(#%plain-module-begin forms ...) 'module-begin (list #'module*))) (pretty-print (syntax->datum d)) d)])) (provide (rename-out [mb #%module-begin]) module+ #%datum + #%app let)) (module m2 'm1 (let ([x 1]) (+ x x)) (module+ mn (let ([x 1]) (+ x x))))