| Safe Haskell | None |
|---|
Ivory.Language.Init
- data XInit
- initType :: XInit -> Type
- newtype Init area = Init {}
- class IvoryZero area where
- class Monad m => FreshName m where
- data Binding = Binding {
- bindingVar :: Var
- bindingType :: Type
- bindingInit :: Init
- bindingSym :: Binding -> Sym
- runInit :: FreshName m => XInit -> m (Init, [Binding])
- class IvoryVar e => IvoryInit e where
- iarray :: forall len area. (IvoryArea area, SingI len) => [Init area] -> Init (Array len area)
- newtype InitStruct sym = InitStruct {
- getInitStruct :: [(String, XInit)]
- istruct :: forall sym. IvoryStruct sym => [InitStruct sym] -> Init (Struct sym)
- (.=) :: Label sym area -> Init area -> InitStruct sym
- local :: forall eff s area. (IvoryArea area, GetAlloc eff ~ Scope s) => Init area -> Ivory eff (Ref (Stack s) area)
Documentation
A variable binding (on the stack or in a memory area).
Constructors
| Binding | |
Fields
| |
bindingSym :: Binding -> SymSource
runInit :: FreshName m => XInit -> m (Init, [Binding])Source
Return the initializer and auxillary bindings for an initializer in a context that can allocate fresh names.
class IvoryVar e => IvoryInit e whereSource
Initializers for Stored things.
Instances
| IvoryInit IChar | |
| IvoryInit Sint64 | |
| IvoryInit Sint32 | |
| IvoryInit Sint16 | |
| IvoryInit Sint8 | |
| IvoryInit Uint64 | |
| IvoryInit Uint32 | |
| IvoryInit Uint16 | |
| IvoryInit Uint8 | |
| IvoryInit IBool | |
| IvoryInit IDouble | |
| IvoryInit IFloat | |
| ProcType proc => IvoryInit (ProcPtr proc) | |
| SingI Nat len => IvoryInit (Ix len) | |
| IvoryArea area => IvoryInit (Ptr Global area) |
iarray :: forall len area. (IvoryArea area, SingI len) => [Init area] -> Init (Array len area)Source
newtype InitStruct sym Source
Constructors
| InitStruct | |
Fields
| |
Instances
| IvoryStruct sym => Monoid (InitStruct sym) |
istruct :: forall sym. IvoryStruct sym => [InitStruct sym] -> Init (Struct sym)Source
(.=) :: Label sym area -> Init area -> InitStruct symSource