ivory-backend-c-0.1.0.7: Ivory C backend.

Safe HaskellNone
LanguageHaskell2010

Ivory.Compile.C.Types

Synopsis

Documentation

newtype CompileM a Source #

Constructors

Compile 

Instances

Monad CompileM Source # 

Methods

(>>=) :: CompileM a -> (a -> CompileM b) -> CompileM b #

(>>) :: CompileM a -> CompileM b -> CompileM b #

return :: a -> CompileM a #

fail :: String -> CompileM a #

Functor CompileM Source # 

Methods

fmap :: (a -> b) -> CompileM a -> CompileM b #

(<$) :: a -> CompileM b -> CompileM a #

Applicative CompileM Source # 

Methods

pure :: a -> CompileM a #

(<*>) :: CompileM (a -> b) -> CompileM a -> CompileM b #

(*>) :: CompileM a -> CompileM b -> CompileM b #

(<*) :: CompileM a -> CompileM b -> CompileM a #

runResult :: CompileM a -> CompileUnits Source #

Run the monad and nub the lists. (We have lists here rather than sets since we do not want to reorder headers. Sometimes a user wants headers to be included in exactly the correct order, since in some (bad!) build environments, includes depend on previous includes and aren't self-sufficient.