This MR implements #20732 (closed).
Main change: every skolem TcTyVar has SkolemInfo attached.
- Major refactoring of
kcCheckDeclHeader_sig; crucially including checking for duplicates (fixes #20916 (closed)) and swizzling
- State invariants on
Implication: levels and
SkolemInfoin skolem tyvars matches
ic_inforesp. Check those invariants with
- Much, much more clarity around TcTyCons. See
Note [TcTyCon, MonoTcTyCon, and PolyTcTyCon]in TcType
- Kill off the nasty