ddc-build-0.4.2.1: Disciplined Disciple Compiler build framework.

Safe HaskellNone
LanguageHaskell98

DDC.Build.Pipeline.Core

Synopsis

Documentation

data PipeCore a n where Source

Process a core module.

Constructors

PipeCoreId :: ![PipeCore a n] -> PipeCore a n 
PipeCoreOutput :: !(PrettyMode (Module a n)) -> !Sink -> PipeCore a n 
PipeCoreCheck :: (Pretty a, Pretty (err (AnTEC a n))) => !(Fragment n err) -> !(Mode n) -> !Sink -> ![PipeCore (AnTEC a n) n] -> PipeCore a n 
PipeCoreReCheck :: (NFData a, Show a, Pretty a, Pretty (err (AnTEC a n))) => !(Fragment n err) -> !(Mode n) -> ![PipeCore (AnTEC a n) n] -> PipeCore (AnTEC a n') n 
PipeCoreReannotate :: (NFData b, Show b) => (a -> b) -> ![PipeCore b n] -> PipeCore a n 
PipeCoreSimplify :: (Pretty a, CompoundName n) => !(Fragment n err) -> !s -> !(Simplifier s a n) -> ![PipeCore () n] -> PipeCore a n 
PipeCoreAsTetra :: ![PipeTetra a] -> PipeCore a Name 
PipeCoreAsFlow :: Pretty a => ![PipeFlow a] -> PipeCore a Name 
PipeCoreAsSalt :: Pretty a => ![PipeSalt a] -> PipeCore a Name 
PipeCoreHacks :: (NFData a, Show b, NFData b) => Canned (Module a n -> IO (Module b n)) -> ![PipeCore b n] -> PipeCore a n 

pipeCore :: (NFData a, Show a, NFData n, Eq n, Ord n, Show n, Pretty n) => Module a n -> PipeCore a n -> IO [Error] Source

Process a Core module.

Returns empty list on success.

pipeCores :: (NFData a, Show a, NFData n, Eq n, Ord n, Show n, Pretty n) => Module a n -> [PipeCore a n] -> IO [Error] Source

data PipeTetra a where Source

Process a Core Tetra module.

Constructors

PipeTetraOutput :: !Sink -> PipeTetra a 
PipeTetraCurry :: (NFData a, Show a) => ![PipeCore () Name] -> PipeTetra (AnTEC a Name) 
PipeTetraBoxing :: (NFData a, Show a) => ![PipeCore a Name] -> PipeTetra a 
PipeTetraToSalt :: (NFData a, Show a) => !Platform -> !Config -> ![PipeCore a Name] -> PipeTetra (AnTEC a Name) 
PipeTetraToPHP :: (NFData a, Show a) => !Sink -> PipeTetra a 

pipeTetra :: Module a Name -> PipeTetra a -> IO [Error] Source

Process a Core Tetra module.

data PipeFlow a where Source

Process a Core Flow module.

pipeFlow :: Module a Name -> PipeFlow a -> IO [Error] Source

Process a Core Flow module.