lambdacube-compiler-0.6.0.1: LambdaCube 3D is a DSL to program GPUs

Safe HaskellNone
LanguageHaskell2010

LambdaCube.Compiler

Synopsis

Documentation

data MMT m x a Source #

Instances

Monad m => Monad (MMT m x) Source # 

Methods

(>>=) :: MMT m x a -> (a -> MMT m x b) -> MMT m x b #

(>>) :: MMT m x a -> MMT m x b -> MMT m x b #

return :: a -> MMT m x a #

fail :: String -> MMT m x a #

Functor m => Functor (MMT m x) Source # 

Methods

fmap :: (a -> b) -> MMT m x a -> MMT m x b #

(<$) :: a -> MMT m x b -> MMT m x a #

Monad m => Applicative (MMT m x) Source # 

Methods

pure :: a -> MMT m x a #

(<*>) :: MMT m x (a -> b) -> MMT m x a -> MMT m x b #

(*>) :: MMT m x a -> MMT m x b -> MMT m x b #

(<*) :: MMT m x a -> MMT m x b -> MMT m x a #

MonadIO m => MonadIO (MMT m x) Source # 

Methods

liftIO :: IO a -> MMT m x a #

MonadThrow m => MonadThrow (MMT m x) Source # 

Methods

throwM :: Exception e => e -> MMT m x a #

MonadCatch m => MonadCatch (MMT m x) Source # 

Methods

catch :: Exception e => MMT m x a -> (e -> MMT m x a) -> MMT m x a #

MonadMask m => MonadMask (MMT m x) Source # 

Methods

mask :: ((forall a. MMT m x a -> MMT m x a) -> MMT m x b) -> MMT m x b #

uninterruptibleMask :: ((forall a. MMT m x a -> MMT m x a) -> MMT m x b) -> MMT m x b #

runMMT :: MMT m x a -> ReaderT (ModuleFetcher (MMT m x)) (StateT (Modules x) m) a Source #

mapMMT :: (ReaderT * (ModuleFetcher (MMT t2 t1)) (StateT (Modules t1) t2) t -> ReaderT * (ModuleFetcher (MMT m x)) (StateT (Modules x) m) a) -> MMT t2 t1 t -> MMT m x a Source #

runMM :: Monad m => ModuleFetcher (MMT m x) -> MMT m x a -> m a Source #

ioFetch :: MonadIO m => [FilePath] -> ModuleFetcher (MMT m x) Source #

loadModule :: MonadMask m => ((Infos, [Stmt]) -> x) -> Maybe FilePath -> Either FilePath MName -> MMT m x (Either Doc (FileInfo, Module' x)) Source #

compileMain :: [FilePath] -> Backend -> MName -> IO (Either Doc Pipeline) Source #

most commonly used interface for end users

ppShow :: PShow a => a -> String Source #