ghc-7.4.2: The GHC API

Safe HaskellNone

Vectorise.Vect

Description

Simple vectorised constructors and projections.

Synopsis

Documentation

type Vect a = (a, a)Source

Contains the vectorised and lifted versions of some thing.

vectorised :: Vect a -> aSource

Get the vectorised version of a thing.

lifted :: Vect a -> aSource

Get the lifted version of a thing.

mapVect :: (a -> b) -> Vect a -> Vect bSource

Apply some function to both the vectorised and lifted versions of a thing.

vVarType :: VVar -> TypeSource

Get the type of a vectorised variable.

vNonRec :: VVar -> VExpr -> VBindSource

Make a vectorised non-recursive binding.

vRec :: [VVar] -> [VExpr] -> VBindSource

Make a vectorised recursive binding.

vVar :: VVar -> VExprSource

Wrap a vectorised variable as a vectorised expression.

vType :: Type -> VExprSource

Wrap a vectorised type as a vectorised expression.

vTick :: Tickish Id -> VExpr -> VExprSource

Make a vectorised note.

vLet :: VBind -> VExpr -> VExprSource

Make a vectorised let expresion.

vLamsSource

Arguments

:: Var

Var bound to the lifting context.

-> [VVar]

Parameter vars for the abstraction.

-> VExpr

Body of the abstraction.

-> VExpr 

Make a vectorised lambda abstraction.

The lifted version also binds the lifting context lc.

vVarApps :: Var -> VExpr -> [VVar] -> VExprSource

Apply an expression to a set of argument variables.

The lifted version is also applied to the variable of the lifting context.