ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

Vectorise.Type.Type

Synopsis

- vectTyCon :: TyCon -> VM TyCon
- vectAndLiftType :: Type -> VM (Type, Type)
- vectType :: Type -> VM Type

# Documentation

vectTyCon :: TyCon -> VM TyCon #

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) #

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 #

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