modular/custom-language-module.scm
(module custom-language-module mzscheme

  (provide (rename make-language #%module-begin)
           (rename make-language #%plain-module-begin))

  (define-syntax (make-language stx)
    (syntax-case stx ()
      [(ml main spec ...)
       (syntax/loc stx
         (#%module-begin
          (require (all-except main #%module-begin #%plain-module-begin)
                   (rename main mb #%module-begin)
                   (rename main pmb #%plain-module-begin)
                   spec ...)
          (provide (all-from main)
                   (rename mb #%module-begin)
                   (rename pmb #%plain-module-begin)
                   (all-from spec) ...)))]))

  )