[plt-scheme] On hygiene and trust
On Thu, Jul 9, 2009 at 11:36 AM, David Van Horn<dvanhorn at ccs.neu.edu> wrote:
>
> Perhaps it is this?
>
> * Wrapped = Unwrapped (r6rs optional):
>
> A wrapped syntax object is the same as an unwrapped syntax
> object, and can be directly manipulated using car, cdr, ...
> without syntax-case deconstruction.
>
> http://www.het.brown.edu/people/andre/macros/
Closer.
What I really want is a set of primitives, means of combination, and
means of abstraction that work well with code objects. There's only a
few general things people do with macros, and they ought to be explicit
and simple. I want sort of a general code rewriting facility that simply
allows re-ordering of expressions and subexpressions without having to
think about `syntax objects'. I also want the ability to inject symbols
hygienically without having to think about it. I also want the ability
to inject symbols *non-hygienically*. I don't mind marking those sorts
of uses. And I want to do some minor code walking. That's it.
The machinery of syntax-rules does great at rewriting, but is awful
at code walking. It doesn't allow non-hygienic symbols.
Syntax-case is awful at code-walking, bad at rewriting (too much unwrapping
and rewrapping), and bad at symbol injection. But it allows you to
break hygiene. Defmacro fails at hygiene, but is great for code walking
and reordering.
But I want something that does it all.
--
~jrm