Rename AND typecheck types before values
In a few cases, we get in trouble during renaming of values because we don't have access to information that would be computed during typechecking. Two examples of this:
- #13905 - Here, we need to determine if a Name is a newtype constructor or data type constructor during renaming (desugaring of applicative do), which is not known until after typechecking
- #12088 (closed) - Perhaps? We want to rename and typecheck instance declarations at the same time, since they can occur between the type declarations.
One nit: you can't compute SCCs until you rename. But if you just rename ALL of the types at once, then SCC them, that should be fine.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.2.1 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |