Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Ref a
- data RefCMD exp prog a where
- data Arr n a
- data ArrCMD exp prog a where
- NewArr :: (VarPred exp a, VarPred exp n, Integral n, Ix n) => exp n -> ArrCMD exp prog (Arr n a)
- NewArr_ :: (VarPred exp a, VarPred exp n, Integral n, Ix n) => ArrCMD exp prog (Arr n a)
- GetArr :: (VarPred exp a, Integral n, Ix n) => exp n -> Arr n a -> ArrCMD exp prog (exp a)
- SetArr :: (Integral n, Ix n) => exp n -> exp a -> Arr n a -> ArrCMD exp prog ()
- data ControlCMD exp prog a where
- If :: exp Bool -> prog () -> prog () -> ControlCMD exp prog ()
- While :: prog (exp Bool) -> prog () -> ControlCMD exp prog ()
- For :: (VarPred exp n, Integral n) => exp n -> exp n -> (exp n -> prog ()) -> ControlCMD exp prog ()
- Break :: ControlCMD exp prog ()
- data Handle
- stdin :: Handle
- stdout :: Handle
- class (Typeable a, Read a, PrintfArg a) => Formattable a where
- formatSpecifier :: Proxy a -> String
- data FileCMD exp prog a where
- FOpen :: FilePath -> IOMode -> FileCMD exp prog Handle
- FClose :: Handle -> FileCMD exp prog ()
- FEof :: VarPred exp Bool => Handle -> FileCMD exp prog (exp Bool)
- FPrintf :: Handle -> String -> [PrintfArg exp] -> FileCMD exp prog ()
- FGet :: (Formattable a, VarPred exp a) => Handle -> FileCMD exp prog (exp a)
- data PrintfArg exp where
- data Object = Object {}
- data ObjectCMD exp prog a where
- data FunArg exp where
- type VarPredCast exp1 exp2 = forall a b. VarPred exp1 a => Proxy a -> (VarPred exp2 a => b) -> b
- class Arg arg where
- mkArg :: CompExp exp => arg exp -> CGen Exp
- mkParam :: CompExp exp => arg exp -> CGen Param
- mapArg :: VarPredCast exp1 exp2 -> (forall a. VarPred exp1 a => exp1 a -> exp2 a) -> arg exp1 -> arg exp2
- mapMArg :: Monad m => VarPredCast exp1 exp2 -> (forall a. VarPred exp1 a => exp1 a -> m (exp2 a)) -> arg exp1 -> m (arg exp2)
- data CallCMD exp prog a where
- AddInclude :: String -> CallCMD exp prog ()
- AddDefinition :: Definition -> CallCMD exp prog ()
- AddExternFun :: VarPred exp res => String -> proxy (exp res) -> [FunArg exp] -> CallCMD exp prog ()
- AddExternProc :: String -> [FunArg exp] -> CallCMD exp prog ()
- CallFun :: VarPred exp a => String -> [FunArg exp] -> CallCMD exp prog (exp a)
- CallProc :: String -> [FunArg exp] -> CallCMD exp prog ()
References
Mutable reference
data RefCMD exp prog a where Source
Commands for mutable references
Arrays
Mutable array
data ArrCMD exp prog a where Source
Commands for mutable arrays
NewArr :: (VarPred exp a, VarPred exp n, Integral n, Ix n) => exp n -> ArrCMD exp prog (Arr n a) | |
NewArr_ :: (VarPred exp a, VarPred exp n, Integral n, Ix n) => ArrCMD exp prog (Arr n a) | |
GetArr :: (VarPred exp a, Integral n, Ix n) => exp n -> Arr n a -> ArrCMD exp prog (exp a) | |
SetArr :: (Integral n, Ix n) => exp n -> exp a -> Arr n a -> ArrCMD exp prog () |
Control flow
data ControlCMD exp prog a where Source
If :: exp Bool -> prog () -> prog () -> ControlCMD exp prog () | |
While :: prog (exp Bool) -> prog () -> ControlCMD exp prog () | |
For :: (VarPred exp n, Integral n) => exp n -> exp n -> (exp n -> prog ()) -> ControlCMD exp prog () | |
Break :: ControlCMD exp prog () |
HFunctor * * (ControlCMD exp) Source | |
DryInterp (ControlCMD exp) Source | |
EvalExp exp => Interp (ControlCMD exp) IO Source | |
type IExp (ControlCMD e) = e Source | |
type IExp ((:+:) (* -> *) * (ControlCMD e) i) = e Source |
File handling
File handle
class (Typeable a, Read a, PrintfArg a) => Formattable a where Source
Values that can be printed/scanned using printf
/scanf
formatSpecifier :: Proxy a -> String Source
data FileCMD exp prog a where Source
FOpen :: FilePath -> IOMode -> FileCMD exp prog Handle | |
FClose :: Handle -> FileCMD exp prog () | |
FEof :: VarPred exp Bool => Handle -> FileCMD exp prog (exp Bool) | |
FPrintf :: Handle -> String -> [PrintfArg exp] -> FileCMD exp prog () | |
FGet :: (Formattable a, VarPred exp a) => Handle -> FileCMD exp prog (exp a) |
Abstract objects
External function calls (C-specific)
type VarPredCast exp1 exp2 = forall a b. VarPred exp1 a => Proxy a -> (VarPred exp2 a => b) -> b Source
mkArg :: CompExp exp => arg exp -> CGen Exp Source
mkParam :: CompExp exp => arg exp -> CGen Param Source
mapArg :: VarPredCast exp1 exp2 -> (forall a. VarPred exp1 a => exp1 a -> exp2 a) -> arg exp1 -> arg exp2 Source
Map over the expression(s) in an argument
mapMArg :: Monad m => VarPredCast exp1 exp2 -> (forall a. VarPred exp1 a => exp1 a -> m (exp2 a)) -> arg exp1 -> m (arg exp2) Source
Monadic map over the expression(s) in an argument
data CallCMD exp prog a where Source
AddInclude :: String -> CallCMD exp prog () | |
AddDefinition :: Definition -> CallCMD exp prog () | |
AddExternFun :: VarPred exp res => String -> proxy (exp res) -> [FunArg exp] -> CallCMD exp prog () | |
AddExternProc :: String -> [FunArg exp] -> CallCMD exp prog () | |
CallFun :: VarPred exp a => String -> [FunArg exp] -> CallCMD exp prog (exp a) | |
CallProc :: String -> [FunArg exp] -> CallCMD exp prog () |