scribble-enhanced/collects/scribble/private/on-demand.rkt
Robby Findler 11fd5a91ed use a more descriptive name in the identifier generated by define-on-demand
so when it shows up in an error message it doesn't take forever to figure
out which 'val' that is

original commit: 0ee8155527bf0118c1b035efdcc5a6a2fac4828a
2012-07-15 08:07:11 -05:00

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)))))