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