Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Ivory eff a
- retProxy :: Ivory eff a -> Proxy r
- runIvory :: Ivory (ProcEffects s r) a -> (a, CodeBlock)
- primRunIvory :: Ivory (ProcEffects s r) a -> (a, CodeBlock)
- collect :: Ivory eff' a -> Ivory eff (a, CodeBlock)
- noBreak :: Ivory (ClearBreak eff) a -> Ivory eff a
- noReturn :: Ivory (ClearReturn eff) a -> Ivory eff a
- noAlloc :: (innerEff ~ ClearAlloc outerEff) => Ivory innerEff a -> Ivory outerEff a
- data CodeBlock = CodeBlock {
- blockStmts :: Block
- blockRequires :: [Require]
- blockEnsures :: [Ensure]
- emits :: CodeBlock -> Ivory eff ()
- emit :: Stmt -> Ivory eff ()
- freshVar :: String -> Ivory eff Var
- result :: forall eff a. IvoryExpr a => a -> Ivory eff Var
- assign :: forall eff a. IvoryExpr a => a -> Ivory eff a
- data SrcLoc
- mkLocation :: FilePath -> Int -> Int -> Int -> Int -> SrcLoc
- setLocation :: SrcLoc -> Ivory eff ()
- withLocation :: SrcLoc -> Ivory eff a -> Ivory eff a
Ivory Monad
retProxy :: Ivory eff a -> Proxy r Source
Get a Proxy
to the return type of an Ivory block.
XXX do not export
Running Functions
runIvory :: Ivory (ProcEffects s r) a -> (a, CodeBlock) Source
Run an Ivory block computation that could require any effect.
XXX do not export
primRunIvory :: Ivory (ProcEffects s r) a -> (a, CodeBlock) Source
collect :: Ivory eff' a -> Ivory eff (a, CodeBlock) Source
Collect the CodeBlock
for an Ivory computation.
XXX do not export
Effects
noBreak :: Ivory (ClearBreak eff) a -> Ivory eff a Source
noReturn :: Ivory (ClearReturn eff) a -> Ivory eff a Source
noAlloc :: (innerEff ~ ClearAlloc outerEff) => Ivory innerEff a -> Ivory outerEff a Source
Code Blocks
CodeBlock | |
|
emits :: CodeBlock -> Ivory eff () Source
Add some statements to the collected block.
XXX do not export
Name Generation
result :: forall eff a. IvoryExpr a => a -> Ivory eff Var Source
Name the result of an expression.
XXX do not export
Source Locations
A range in the program source.
setLocation :: SrcLoc -> Ivory eff () Source
withLocation :: SrcLoc -> Ivory eff a -> Ivory eff a Source