Safe Haskell | None |
---|
- data Visible
- newtype ModuleM a = Module {}
- type ModuleDef = ModuleM ()
- visAcc :: Visible -> a -> Visible a
- incl :: Def a -> ModuleDef
- inclHeader :: String -> ModuleDef
- depend :: Module -> ModuleDef
- defStruct :: forall sym. (IvoryStruct sym, SingI sym) => Proxy sym -> ModuleDef
- defStringType :: forall str. IvoryString str => Proxy str -> ModuleDef
- defMemArea :: IvoryArea area => MemArea area -> ModuleDef
- defConstMemArea :: IvoryArea area => ConstMemArea area -> ModuleDef
- sourceDep :: FilePath -> ModuleDef
- package :: String -> ModuleDef -> Module
- private :: ModuleDef -> ModuleDef
- public :: ModuleDef -> ModuleDef
- moduleName :: Module -> String
Documentation
visAcc :: Visible -> a -> Visible aSource
Add an element to the public/private list, depending on visibility
inclHeader :: String -> ModuleDefSource
Add a dependency on an external header.
defStruct :: forall sym. (IvoryStruct sym, SingI sym) => Proxy sym -> ModuleDefSource
Include the definition of a structure in the module.
defStringType :: forall str. IvoryString str => Proxy str -> ModuleDefSource
Include the definition of a string type's structure.
defMemArea :: IvoryArea area => MemArea area -> ModuleDefSource
Include the definition of a memory area.
defConstMemArea :: IvoryArea area => ConstMemArea area -> ModuleDefSource
Include the definition of a constant memory area.
sourceDep :: FilePath -> ModuleDefSource
Depend on an existing (object language) source file which should be copied to the user build tree as part of code generation
private :: ModuleDef -> ModuleDefSource
Start a block of definitions that should not be put in the header.
public :: ModuleDef -> ModuleDefSource
Start a block of definitions should be put in the header. This is the
default, and this function is just included to complement private
.
moduleName :: Module -> StringSource