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

Safe HaskellNone
LanguageHaskell2010

LambdaCube.Compiler.InferMonad

Documentation

type Infos = [Info] Source #

listErrors :: [Info] -> [(Range, [Doc])] Source #

tellType :: (PShow a, SourceInfo a1, MonadWriter [Info] m) => a1 -> a -> m () Source #

expAndType :: t1 -> (Exp, Type, t) -> ExpType Source #

addLams :: Foldable t => t b -> Exp -> Exp Source #

lamify :: Exp -> ([Exp] -> Exp) -> Exp Source #

lamify' :: Exp -> ([Exp] -> Exp) -> Exp Source #

downTo :: Int -> Int -> [Exp] Source #

downTo' :: Int -> Int -> [Exp] Source #

withEnv :: (Monoid b, MonadReader (d, b) m) => b -> m a -> m a Source #

compDefined :: Bool -> Exp -> (Set Int, [(Int, Exp)], Int) Source #