Fn(Un)HLister/(un)hlisted => Fn[To|From]Product/[to|from]Product; Aux
traits replaced with type aliases.