「exceptions.rkt」というファイルがあります
#lang racket
(module exceptions racket
(provide Macro/Raise Macro/Assert Macro/Assert* Macro/Domain-Assert)
; ... Definitions for provided symbols...
) ; End of module, end of file
Macro/Raise
などは実際には define-syntax で定義されたマクロではありません。これらは単項関数で生成syntax-rules
され、名前が割り当てられているだけです。
(define Macro/Raise
(syntax-rules ()
; ... body not important ...
))
「exceptions.rkt」と同じフォルダに、「tables.rkt」というファイルがあります。
#lang racket
(module tables racket
(require "exceptions.rkt")
(define-syntax Assert Macro/Assert)
; ... more stuff...
) ; End of module, end of file
しかし、これはMacro/Assert: undefined; cannot reference an identifier before its definition in module: 'tables phase: 1
ドキュメントを読んでみましたが、何が間違っているのかわかりません...では、何が間違っているのでしょうか?