Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Inline
- addInlineArity :: Inline -> Int -> Inline
- inlineMe :: Inline
- hoistBinding :: Var -> CoreExpr -> VM ()
- hoistExpr :: FastString -> CoreExpr -> Inline -> VM Var
- hoistVExpr :: VExpr -> Inline -> VM VVar
- hoistPolyVExpr :: [TyVar] -> [Var] -> Inline -> VM VExpr -> VM VExpr
- takeHoisted :: VM [(Var, CoreExpr)]
Documentation
addInlineArity :: Inline -> Int -> Inline Source
Add to the arity contained within an Inline
, if any.
hoistBinding :: Var -> CoreExpr -> VM () Source
hoistPolyVExpr :: [TyVar] -> [Var] -> Inline -> VM VExpr -> VM VExpr Source
Hoist a polymorphic vectorised expression into a new top-level binding (representing a closure function).
The hoisted expression is parameterised by (1) a set of type variables and (2) a set of value
variables that are passed as conventional type and value arguments. The latter is implicitly
extended by the set of PA
dictionaries required for the type variables.
takeHoisted :: VM [(Var, CoreExpr)] Source