#lang racket
;;
;; Hi all (Matthew in particular I imagine :-) ),
;;
;; Why does option (C) work, but options (A) and (B) do not?
;;
;; They fail with:
;;
;; t.rkt:31:2: v1: unbound identifier in module
;;   in: v1
;;   context...:
;;    standard-module-name-resolver
;;
;; -- Tony

(require racket/require-syntax)

;;------------------------------(A)------------------------------
;; (define-require-syntax m+
;;   (syntax-rules ()
;;     [(_ xs ...)
;;      (submod ".." xs ...)]))

;;------------------------------(B)------------------------------
;; (define-require-syntax (m+ stx)
;;   (syntax-case stx ()
;;     [(_ xs ...)
;;      #'(submod ".." xs ...)]))

;;------------------------------(C)------------------------------
(define-require-syntax (m+ stx)
  (syntax-case stx ()
    [(_ xs ...)
     (datum->syntax stx (list* 'submod ".." #'(xs ...)))]))


(module+ m1
  (provide v1)
  (define v1 123))

(module+ main
  (require (m+ m1))
  v1)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to