Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Visible
- newtype ModuleM a = Module {}
- type ModuleDef = ModuleM ()
- visAcc :: Visible -> a -> Visible a
- incl :: Def a -> ModuleDef
- inclSym :: IvoryExpr t => t -> ModuleDef
- depend :: Module -> ModuleDef
- dependByName :: String -> ModuleDef
- defStruct :: forall sym. (IvoryStruct sym, ASymbol sym) => Proxy sym -> ModuleDef
- defStringType :: forall str. IvoryString str => Proxy str -> ModuleDef
- defMemArea :: IvoryArea area => MemArea area -> ModuleDef
- defConstMemArea :: IvoryArea area => ConstMemArea area -> ModuleDef
- package :: String -> ModuleDef -> Module
- private :: ModuleDef -> ModuleDef
- public :: ModuleDef -> ModuleDef
- moduleName :: Module -> String
Documentation
visAcc :: Visible -> a -> Visible a Source #
Add an element to the public/private list, depending on visibility
dependByName :: String -> ModuleDef Source #
Add a dependency on another module by name. Use the same name
here that you use when you call package
to build the target
module. This function is particularly useful when building mutually
dependent module structures.
defStruct :: forall sym. (IvoryStruct sym, ASymbol sym) => Proxy sym -> ModuleDef Source #
Include the definition of a structure in the module.
defStringType :: forall str. IvoryString str => Proxy str -> ModuleDef Source #
Include the definition of a string type's structure.
defMemArea :: IvoryArea area => MemArea area -> ModuleDef Source #
Include the definition of a memory area.
defConstMemArea :: IvoryArea area => ConstMemArea area -> ModuleDef Source #
Include the definition of a constant memory area.
package :: String -> ModuleDef -> Module Source #
Package the module up. Default visibility is public.
private :: ModuleDef -> ModuleDef Source #
Start a block of definitions that should not be put in the header.
public :: ModuleDef -> ModuleDef Source #
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 -> String Source #