-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat: type-level let #684
feat: type-level let #684
Conversation
6b8c8c7
to
6bc3080
Compare
This unblocks #559 |
Just so I understand, this is so we can represent substitution of type lambdas during eval as |
|
Similarly to 'lettype', these will be unsupported in the typechecker. It is expected that (for now) they are only ephemeral nodes used during evaluation. However, this commit does not implement support in the evaluators or generators. (It does implement support everywhere other than the typechecker, the evaluators and the generators.)
We also draft support for type-level lets in the typed generator. However, this is commented out because the typechecker does not support lets in types.
6bc3080
to
09c5541
Compare
Note that this only handles lets that somehow already appear in types -- we do not create them. (In fact, because Eval drops the relevent annotations (in BETA redexes), we don't have any place we want to use such lets).
Note that this only handles lets that somehow already appear in types -- we do not create them.
09c5541
to
3fed105
Compare
Support lets in types to the same extent as typelet in terms. Use them when doing a BETA reduction (in EvalFull).