| tc `hasKey` argTypeKindTyConKey = ptext (sLit "??")
pprTcApp p pp tc tys
+
| isTupleTyCon tc && tyConArity tc == length tys
= tupleParens (tupleTyConBoxity tc) (sep (punctuate comma (map (pp TopPrec) tys)))
+
+ | tc `hasKey` hetMetCodeTypeTyConKey, [ty1,ty2] <- tys
+ = ptext (sLit "<[") <> pp TopPrec ty2 <> ptext (sLit "]>@") <> pp TopPrec ty1
+
| otherwise
= pprTypeNameApp p pp (getName tc) tys