Let me mention that I like the rules for unwrapping. I am sure it was not an
easy compromise, but I think it is an elegant solution to the problems you
point out with prior approaches, and will make macros significantly less
painful to write.
Just a couple of uncertainties:
- Just to confirm: (car (syntax (1 2))) --> an error.
- Could one write
(define-syntax or
(lambda (x)
(syntax-case x ()
[(_) #f]
...
instead of (syntax #f)? The definition of syntax objects
seems to allow it.
- Related, is (quote (1 2 3)) a valid output of a transformer,
as opposed to (syntax (1 2 3)). Again, the spec appears to
allow it.
Regards
Andre