As discussed in the WG-traits planning meeting today, we need to decide how we will represent higher-ranked types in rustc. We decided to try for using debruijn indexing more universally, much as it is done in chalk. The plan is to generalize the existing CanonicalVar so that it represents a "bound" thing -- probably it just gets unified with DebruijnIndex. This will take a few steps, each of which I plan to describe in its own sub-issue:
As discussed in the WG-traits planning meeting today, we need to decide how we will represent higher-ranked types in rustc. We decided to try for using debruijn indexing more universally, much as it is done in chalk. The plan is to generalize the existing
CanonicalVarso that it represents a "bound" thing -- probably it just gets unified withDebruijnIndex. This will take a few steps, each of which I plan to describe in its own sub-issue:Binderfields (cleanup Binder fields #49814)DebruijnIndex0-based (Refactor DebruijnIndex to be 0-based #49813)CanonicalVarandDebruijnIndex(UnifyCanonicalVarandDebruijnIndex#49887)