futhark-0.25.6: An optimising compiler for a functional, array-oriented language.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Futhark.Internalise.Monad

Synopsis

Documentation

data InternaliseM a Source #

Instances

Instances details
Applicative InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

Functor InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

Methods

fmap :: (a -> b) -> InternaliseM a -> InternaliseM b #

(<$) :: a -> InternaliseM b -> InternaliseM a #

Monad InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

MonadBuilder InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

Associated Types

type Rep InternaliseM Source #

MonadFreshNames InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

HasScope SOACS InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

LocalScope SOACS InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

MonadReader InternaliseEnv InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

type Rep InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

throwError :: MonadError e m => e -> m a #

Is used within a monadic computation to begin exception processing.

type VarSubsts = Map VName [SubExp] Source #

A mapping from external variable names to the corresponding internalised subexpressions.

addOpaques :: OpaqueTypes -> InternaliseM () Source #

Add opaque types. If the types are already known, they will not be added.

addFunDef :: FunDef SOACS -> InternaliseM () Source #

Add a function definition to the program being constructed.

assert :: String -> SubExp -> ErrorMsg SubExp -> SrcLoc -> InternaliseM Certs Source #

Construct an Assert statement, but taking attributes into account. Always use this function, and never construct Assert directly in the internaliser!

Convenient reexports