-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow a macro to "reset" the elaborator and do all the elaboration passes within itself #87
Comments
Should |
They currently work like |
PS:
With the same I'm imagining that the |
Would you rather have a function like |
Some macros, and specifically the
mod
macro in the Module/Functor system @iitalics and I are working on, should do all the elaboration passes themselves, and they should not be part of the elaboration passes of the outer module. Given this, they should calllocal-expand+elaborate
to set up those passes. However, when submodules of an outer module expand, they are already within an elaboration pass, so the call tolocal-expand+elaborate
errors out.Should there be a
call-with-no-elaborate-pass
function or an extra argument tolocal-expand+elaborate
so that macros like this can reset the elaborator and start a new set of passes?Using the
call-with-no-elaborate-pass
function would look like this:(call-with-no-elaborate-pass (λ () (local-expand+elaborate ...expr...))))
Or using some kind of extra argument might look like this:
An implementation of
call-with-no-elaborate-pass
might look like:Or an implementation of the
#:reset?
argument might look like:The text was updated successfully, but these errors were encountered: