Note [FixedRuntimeRep context in ExpType]
Sometimes, we want to be sure that we fill an ExpType with a type that has a syntactically fixed RuntimeRep (in the sense of Note [Fixed RuntimeRep] in GHC.Tc.Utils.Concrete). Example: pattern S a = (a :: (T :: TYPE R)) We have to infer a type for `a` which has a syntactically fixed RuntimeRep. When it comes time to filling in the inferred type, we do the appropriate representation-polymorphism check, much like we do a level check as explained in Note [TcLevel of ExpType]. See test case T21325.
References 2
- Fixed RuntimeRep GHC.Tc.Utils.Concrete
- TcLevel of ExpType GHC.Tc.Utils.TcMType
Referenced by 1
- GHC.Tc.Utils.TcType call site