ghc-8.2.1: The GHC API

Safe HaskellNone




vectTyCon :: TyCon -> VM TyCon Source #

Vectorise a type constructor. Unless there is a vectorised version (stripped of embedded parallel arrays), the vectorised version is the same as the original.

vectAndLiftType :: Type -> VM (Type, Type) Source #

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.

vectType :: Type -> VM Type Source #

Vectorise a type.

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