[plt-scheme] expand up to class forms

From: Dave Herman (dherman at ccs.neu.edu)
Date: Thu Apr 28 10:00:30 EDT 2005

> I'm not sure I follow. Using `expand-once' enough times should get you
> to the point where the expression is `class*', but it sounds like you
> want to then expand the body expressions in `class*' without expanding
> the `class*' form itself.

The idea is that at some point in the expansion of `class*' is tells its 
body expressions to (partially) expand and then expansion continues from 
there; I'd like a "breakpoint" right at the point after it has 
local-expanded the body expressions but before it does any more expansion.

> If that's right, then I think there's no way to get what you want out
> of `class*', because `class*' can't expand itself without (partially)
> expanding its body expressions, and it can't expand its body
> expressions without expanding itself.

IIUC, you're saying that by the time it's started expanding the body 
expressions, it's already partway through expanding the `class*' form, 
so there's no stopping it now. Fair enough. And I tried some tricks with 
`local-expand' using all the class keywords in the stop-list, to no avail.

I see that the implementation of `class*' abstracts out the expansion of 
the body in a helper function; I wonder how hard it would be to create a 
utility in the class library that does the same thing as `class*' but 
stops after expansion of the body?


Posted on the users mailing list.