Abstraction leak: HsRecTy and HsBangTy
HsBangTy are intermediate forms that occur during parsing. They are only valid when declaring data constructor fields, never inside an ordinary type.
So these constructs do not belong in
HsType. Their current inclusion in
HsType is an abstraction leak, as it was just convenient to put them there for parsing purposes.
This ticket is to track their removal and replacement.