;; (##module <module-name> <language-name> ;; (export <id> ...) ... ;; (define-macro ...) ... ;; ) ;; ;; (##require <module-name>) ;; ;; Currently, <module-name> must be a symbol naming the source file ;; without the extension and <language-name> must be the symbol ;; |gambit|. ;; ;; The ##module form must be the first expression in a file and ;; the ##require form can appear anywhere a definition can appear.
One idea here that might be interesting to elaborate on in the future, that I haven't been able to incorporate into the API of black hole, is one from PLT: It's possible to say that the <language-name> is simply the name of the first module to import, |gambit| would contain the initial macros/functions to use, like require, define and so on. I can see some easy-to-define-and-use DSL potential in that idea.
(I'm not entirely sure that MzScheme still has this API, but at some point they have at least)
/Per