PasteRack.org
Paste # 26916
2016-10-22 18:14:21

Fork as a new paste.

Paste viewed 63 times.


Embed:

syntax-local-introduce in other module

  1. #lang racket
  2.  
  3. (define-syntax (quux stx) #''hello)
  4.  
  5. (module m racket
  6.   (provide (for-syntax mymacro-implementation))
  7.  
  8.   (define-for-syntax (mymacro-implementation stx)
  9.     #`(list
  10.        ;; Works
  11.        #,(datum->syntax stx 'quux)
  12.        ;; quux: unbound identifier in module
  13.        #,(syntax-local-introduce #'quux))))
  14.  
  15. (require 'm)
  16.  
  17. (define-syntax (mymacro stx) (mymacro-implementation stx))
  18. (mymacro)

=>

quux: undefined;

 cannot reference an identifier before its definition

  in module: 'm