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
Modification to type class resolution #815
Conversation
!bench |
Here are the benchmark results for commit 1ab739b. |
I think the bot got confused about your merge commit, the 1.5% TC resolution performance regression is statistically significant. Whether it is practically significant is a different question. |
I see, I think I can make the modification a bit faster. Currently, I'm making sure that certain keys are never added to the table. If such a key is queried over and over, it is modified every time and the modified key's answers are transformed back to non-modified form. Caching out the key+answer modification can speed things up. Unfortunately, I'm not exactly sure how to do that. |
Thanks a lot for adding this in. I can work with nightly builds again! |
Inspecting some type class synthesis, I'm a bit unsure if the function For example I'm getting
It does not look like that there is an unused argument. It does not break anything, it is just doing unnecessary work. |
Could you please post the example that triggers the issue above? |
mwe:
|
The trace contains:
|
Thanks a lot for fixing this! |
mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c
I have modified the type class resolution a little bit to be able to synthesize instances of type
(a : α) → C
a bit better, see zulip discussion about it.