No Skolem Info
This MR implements #20732 (closed).
Main change: every skolem TcTyVar has SkolemInfo attached.
Subsidiary changes
- Major refactoring of
kcCheckDeclHeader_sig
; crucially including checking for duplicates (fixes #20916 (closed)) and swizzling - State invariants on
Implication
: levels andSkolemInfo
in skolem tyvars matchesic_lvl
andic_info
resp. Check those invariants withcheckImplicationInvariants
- Much, much more clarity around TcTyCons. See
Note [TcTyCon, MonoTcTyCon, and PolyTcTyCon]
in TcType - Kill off the nasty
ClassScopedTvEnv
entirely