- 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)]
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.