Skip to content
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

[wip] improve Elpi elaborator #169

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

[wip] improve Elpi elaborator #169

wants to merge 3 commits into from

Conversation

gares
Copy link
Contributor

@gares gares commented Jul 30, 2020

Changes:

  • CHR rule to propagate restrictions from a "refined evar" Y to the "raw one" X in evar X T Y. The point is that Y can occur elsewhere, and unif can restrict it. The CHR rule for UT uses Y's scope to operate, and if X is larger we don't know what to do. So we immediately restrict X whenever Y is.
    Todo:
  • coercions (not very well tested)
  • TC (only for non hint extern, should be reasonably easy)
  • CS (should be easy)
  • error messages. That is the pink elephant. I guess adding a type loc loc -> term -> term would be step 0, the one would need a more efficient implementation of safe or some auxiliary API to close wrt the context, since now it only supports ground terms, eg strings, but during elaboration one may want to just store the (non-ground) data needed in order to print an error (for efficiency). Syntactic Constraints kind of do that, but how to use them is not 100% clear yet (they key is simple, but not ground either, unless you don't key them...)

@gares gares changed the title [wip] improve the elaborator [wip] improve Elpi elaborator Jul 31, 2020
@gares gares added this to the 2.0 milestone Aug 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant