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

Safe HaskellNone
LanguageHaskell2010

LambdaCube.Compiler.Infer

Documentation

data Neutral Source

Constructors

Fun_ !MaxDB FunName [Exp] !Int [Exp] Neutral 
CaseFun__ !MaxDB CaseFunName [Exp] Neutral 
TyCaseFun__ !MaxDB TyCaseFunName [Exp] Neutral 
App__ !MaxDB Neutral Exp 
Var_ !Int 
LabelEnd_ Exp 
Delta (SData ([Exp] -> Exp)) 

type ExpType = (Exp, Type) Source

type GlobalEnv = Map SName (Exp, Type, SI) Source

pattern Var :: Int -> Exp Source

pattern CaseFun :: CaseFunName -> [Exp] -> Neutral -> Exp Source

pattern TyCaseFun :: TyCaseFunName -> [Exp] -> Neutral -> Exp Source

pattern App_ :: Neutral -> Exp -> Neutral Source

app_ :: Exp -> Exp -> Exp infixl 2 Source

pattern Con :: ConName -> Int -> [Exp] -> Exp Source

pattern TyCon :: TyConName -> [Exp] -> Exp Source

pattern Pi :: Visibility -> Exp -> Exp -> Exp Source

pattern Lam :: Exp -> Exp Source

pattern Fun :: FunName -> Int -> [Exp] -> Neutral -> Neutral Source

pattern ELit :: Lit -> Exp Source

pattern Func :: FName -> Exp -> Type -> [Exp] -> Exp Source

pattern LabelEnd :: Exp -> Exp Source

pattern FL :: Exp -> Exp Source

pattern UFL :: Exp -> Exp Source

down :: (Subst Exp a, Up a) => Int -> a -> Maybe a Source

class Subst b a where Source

Methods

subst_ :: Int -> MaxDB -> b -> a -> a Source

Instances

Subst Exp Exp Source 
(Subst x a, Subst x b) => Subst x (a, b) Source 

free :: Up a => a -> Set Int Source

subst :: (Up b, Subst b a) => Int -> b -> a -> a Source

pattern EBind2 :: Binder -> Type -> Env -> Env Source

type Infos = [Info] Source

nType :: NType a => a -> Type Source

conType :: Exp -> ConName -> Type Source

appTy :: (Up b, Subst b Exp) => Exp -> b -> Exp Source