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

Use explicit substitutions and WHNFs in the type checker #62

Closed
brendanzab opened this issue Apr 30, 2018 · 1 comment · Fixed by #197
Closed

Use explicit substitutions and WHNFs in the type checker #62

brendanzab opened this issue Apr 30, 2018 · 1 comment · Fixed by #197

Comments

@brendanzab
Copy link
Member

brendanzab commented Apr 30, 2018

Currently we do eager substitutions under binders. This is inefficient and probably won't be tenable once we have recursive datatypes and definitions. Type systems like F* and PiSigma use weak head normal forms and explicit substitutions to get around this.

See also: https://github.com/brendanzab/pikelet/issues/22#issuecomment-381979497

@brendanzab
Copy link
Member Author

One interesting thing that PiSigma does is reuse let bindings for explicit substitutions. This couild help us simplify the internals. Let bindings also use contexts internally, so this could further simplify our calculus.

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 a pull request may close this issue.

1 participant