-
Notifications
You must be signed in to change notification settings - Fork 35
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
Dependent Records #63
Conversation
We allow fields to refer to other fields and there is no need to unfold eagerly. In
in Next,
should not be valid syntax. Instead it should be
which evaluates to
or with explicit de Bruijn indices:
|
I think it's better to create a separate branch for this than to fold it into the contexts branch. In any case, we shuld move over to master as soon as possible. |
Closing because I merged it into the |
I see now what you're talking about. I think we need to use beta hints to get around the problem. |
What exactly should happen when evaluating
?
If we do it wrong, we can get something like
which doesn't have the expected type.
Essentially x isn't bound the same way in the type
and in the value
This double binding gets very annoying, see for instance the fold at line 270 of eval.ml where we carry around 2 environments and it's not clear if we should have 2 contexts as well or something.
We also unfold eagerly in values, so for instance
will produce
which is kind of horrible.