Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
- class IvoryVar a => IvoryZeroVal a where
- iarray :: forall len area. (IvoryArea area, ANat 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
class IvoryZero area where Source
Zero initializers. The semantics of Ivory is that initializers must be compatible with C semantics of initializing to 0 for globals in .bss.
A variable binding (on the stack or in a memory area).
Binding | |
|
bindingSym :: Binding -> Sym Source
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 where Source
Initializers for Stored
things.
Nothing
IvoryInit Sint64 Source | |
IvoryInit Sint32 Source | |
IvoryInit Sint16 Source | |
IvoryInit Sint8 Source | |
IvoryInit Uint64 Source | |
IvoryInit Uint32 Source | |
IvoryInit Uint16 Source | |
IvoryInit Uint8 Source | |
IvoryInit IChar Source | |
IvoryInit IBool Source | |
IvoryInit IDouble Source | |
IvoryInit IFloat Source | |
ProcType proc => IvoryInit (ProcPtr proc) Source | |
ANat len => IvoryInit (Ix len) Source | |
IvoryRep (BitRep n) => IvoryInit (Bits n) Source | |
IvoryArea area => IvoryInit (Ptr Global area) Source |
class IvoryVar a => IvoryZeroVal a where Source
iarray :: forall len area. (IvoryArea area, ANat len) => [Init area] -> Init (Array len area) Source
newtype InitStruct sym Source
InitStruct | |
|
IvoryStruct sym => Monoid (InitStruct sym) Source |
istruct :: forall sym. IvoryStruct sym => [InitStruct sym] -> Init (Struct sym) Source
(.=) :: Label sym area -> Init area -> InitStruct sym Source