такой способ:
#lang racket
(module proc-module racket
(provide make-stx)
(define (make-stx) #''i-am-syntax)
)
(require (for-syntax 'proc-module))
(define-syntax (transformer stx) (make-stx))
(transformer)
quote: unbound identifier;
also, no #%app syntax transformer is bound
at: quote
in: (quote i-am-syntax)
такой
#lang racket
(module proc-module racket
(provide (for-syntax make-stx))
(define-for-syntax (make-stx) #''i-am-syntax)
)
(require 'proc-module)
(define-syntax (transformer stx) (make-stx))
(transformer)
Почему не работает первый способ и работает второй?
Как сделать правильно в манере первого способа (без define-for-syntax)?