ghc-8.4.1.20180329: The GHC API

Safe HaskellNone
LanguageHaskell2010

Vectorise.Utils.Poly

Description

Auxiliary functions to vectorise type abstractions.

Synopsis

Documentation

polyAbstract :: [TyVar] -> ([Var] -> VM a) -> VM a Source #

Vectorise under the PA dictionary variables corresponding to a set of type arguments.

The dictionary variables are new local variables that are entered into the local vectorisation map.

The purpose of this function is to introduce the additional PA dictionary arguments that are needed when vectorising type abstractions.

polyApply :: CoreExpr -> [Type] -> VM CoreExpr Source #

Apply a expression to its type arguments as well as PA dictionaries for these type arguments.

polyVApply :: VExpr -> [Type] -> VM VExpr Source #

Apply a vectorised expression to a set of type arguments together with PA dictionaries for these type arguments.

polyArity :: [TyVar] -> VM Int Source #

Determine the number of PA dictionary arguments required for a set of type variables (depends on their kinds).