It seems to me that HsWildCardInfo is unnecessary.
It is defined as
newtype HsWildCardInfo pass -- See Note [The wildcard story for types]
= AnonWildCard (PostRn pass (Located Name))
-- A anonymous wild card ('_'). A fresh Name is generated for
-- each individual anonymous wildcard during renaming
And only ever used in
data HsType pass
...
| HsWildCardTy (HsWildCardInfo pass)
Why not just do
| HsWildCardTy (PostRn pass (Located Name))
?
Am I missing something?
Alan