Produce the vectorised and lifted versions of a type.
NB: Here we are limited to properly handle predicates at the toplevel only. Anything embedded
in what is called the body_ty below will end up as an argument to the type family PData.
For each quantified var we need to add a PA dictionary out the front of the type.
So forall a. C a => a -> a
turns into forall a. PA a => Cv a => a :-> a