
so when it shows up in an error message it doesn't take forever to figure out which 'val' that is original commit: 0ee8155527bf0118c1b035efdcc5a6a2fac4828a
13 lines
378 B
Racket
13 lines
378 B
Racket
#lang racket/base
|
|
(require racket/promise
|
|
(for-syntax racket/base))
|
|
(provide define-on-demand)
|
|
|
|
(define-syntax-rule (define-on-demand id rhs)
|
|
(begin
|
|
(define define-on-demand-bound-promise (delay rhs))
|
|
(define-syntax (id stx)
|
|
(if (identifier? stx)
|
|
#'(force define-on-demand-bound-promise)
|
|
(raise-syntax-error #f "bad syntax" stx)))))
|