a @tech{Q-expression} is either a) a string, b) an X-expression whose tag is @racket[q] and whose elements are themselves Q-expressions.
Elsewhere, though, the same file (at 680422ea57/quad/quad/scribblings/quad.scrbl (L449-L465)) defines constants like line-break with values like '(line-break) and says that these are Q-expressions, even though their tags are not 'q.
The documentation at https://git.matthewbutterick.com/mbutterick/typesetting/src/commit/680422ea57fce4bc4280edb7412c161561d1641c/quad/quad/scribblings/quad.scrbl#L415-L424 says that:
> a @tech{Q-expression} is either a) a string, b) an X-expression whose tag is @racket[q] and whose elements are themselves Q-expressions.
Elsewhere, though, the same file (at https://git.matthewbutterick.com/mbutterick/typesetting/src/commit/680422ea57fce4bc4280edb7412c161561d1641c/quad/quad/scribblings/quad.scrbl#L449-L465) defines constants like `line-break` with values like `'(line-break)` and says that these are Q-expressions, even though their tags are not `'q`.
The implementation of `qexpr?` (at https://git.matthewbutterick.com/mbutterick/typesetting/src/commit/680422ea57fce4bc4280edb7412c161561d1641c/quad/quad/qexpr.rkt#L14-L30) explicitly uses:
```racket
(define (valid-tag? tag) (symbol? tag))
```
I agree the documentation appears to be wrong. I don't know how to fix it quickly. Quad is not really fit for human consumption. May I kindly dissuade you from looking at it with reasonable expectations.
I agree the documentation appears to be wrong. I don't know how to fix it quickly. Quad is not really fit for human consumption. May I kindly dissuade you from looking at it with reasonable expectations.
The documentation at
680422ea57/quad/quad/scribblings/quad.scrbl (L415-L424)
says that:Elsewhere, though, the same file (at
680422ea57/quad/quad/scribblings/quad.scrbl (L449-L465)
) defines constants likeline-break
with values like'(line-break)
and says that these are Q-expressions, even though their tags are not'q
.The implementation of
qexpr?
(at680422ea57/quad/quad/qexpr.rkt (L14-L30)
) explicitly uses:I agree the documentation appears to be wrong. I don't know how to fix it quickly. Quad is not really fit for human consumption. May I kindly dissuade you from looking at it with reasonable expectations.