Vectorise.Monad.Local

ghc-8.4.4: The GHC API

Safe Haskell | None
Language | Haskell2010

Vectorise.Monad.Local

Synopsis

- readLEnv :: (LocalEnv -> a) -> VM a
- setLEnv :: LocalEnv -> VM ()
- updLEnv :: (LocalEnv -> LocalEnv) -> VM ()
- localV :: VM a -> VM a
- closedV :: VM a -> VM a
- getBindName :: VM FastString
- inBind :: Id -> VM a -> VM a
- lookupTyVarPA :: Var -> VM (Maybe CoreExpr)
- defLocalTyVar :: TyVar -> VM ()
- defLocalTyVarWithPA :: TyVar -> CoreExpr -> VM ()
- localTyVars :: VM [TyVar]

# Documentation

readLEnv :: (LocalEnv -> a) -> VM a #

Project something from the local environment.

setLEnv :: LocalEnv -> VM () #

Set the local environment.

updLEnv :: (LocalEnv -> LocalEnv) -> VM () #

Update the environment using the provided function.

localV :: VM a -> VM a #

Perform a computation in its own local environment. This does not alter the environment of the current state.

closedV :: VM a -> VM a #

Perform a computation in an empty local environment.

getBindName :: VM FastString #

Get the name of the local binding currently being vectorised.

inBind :: Id -> VM a -> VM a #

Run a vectorisation computation in a local environment, with this id set as the current binding.

lookupTyVarPA :: Var -> VM (Maybe CoreExpr) #

Lookup a PA tyvars from the local environment.

defLocalTyVar :: TyVar -> VM () #

Add a tyvar to the local environment.

defLocalTyVarWithPA :: TyVar -> CoreExpr -> VM () #

Add mapping between a tyvar and pa dictionary to the local environment.

localTyVars :: VM [TyVar] #

Get the set of tyvars from the local environment.