
This library is used by Redex, which wants a `syntax'-like template language, but for datum values instead of syntax objects. Using `datum-case' and `datum' generates much less code. Redex uses only a small part of the general functionality, so adding `syntax/datum' could be overkill. It's implemented by generalizing the `syntax-case' and `syntax' pattern matching and template constructing code, though; it's not a lot of extra code, and it's easiest to generalize completely. We may find other uses for datum templates, too.
6 lines
194 B
Racket
6 lines
194 B
Racket
(module datum '#%kernel
|
|
(#%require racket/private/stxcase-scheme
|
|
racket/private/qqstx)
|
|
(#%provide datum datum-case with-datum
|
|
quasidatum undatum undatum-splicing))
|