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

Safe HaskellNone

DDC.Build.Pipeline.Core

Synopsis

Documentation

data PipeCore a n whereSource

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 :: !(Fragment n err) -> !s -> !(Simplifier s a n) -> ![PipeCore () n] -> PipeCore a n 
PipeCoreAsTetra :: ![PipeTetra (AnTEC a Name)] -> PipeCore (AnTEC a Name) Name 
PipeCoreAsLite :: ![PipeLite] -> PipeCore (AnTEC () Name) 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 whereSource

Process a Core Tetra module.

Constructors

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

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

Process a Core Tetra module.

data PipeLite Source

Process a Core Lite module.

Constructors

PipeLiteOutput !Sink

Output the module in core language syntax.

PipeLiteToSalt !Platform !Config ![PipeCore () Name]

Convert the module to the Core Salt Fragment.

pipeLite :: Module (AnTEC () Name) Name -> PipeLite -> IO [Error]Source

Process a Core Lite module.

data PipeFlow a whereSource

Process a Core Flow module.

Constructors

PipeFlowOutput :: Sink -> PipeFlow a 
PipeFlowHacks :: (NFData a, Show b, NFData b) => Canned (Module a Name -> IO (Module b Name)) -> ![PipeFlow b] -> PipeFlow a 
PipeFlowPrep :: [PipeCore () Name] -> PipeFlow () 
PipeFlowRate :: [PipeCore () Name] -> PipeFlow () 
PipeFlowLower :: Config -> [PipeCore () Name] -> PipeFlow (AnTEC () Name) 
PipeFlowMelt :: [PipeCore () Name] -> PipeFlow (AnTEC () Name) 
PipeFlowWind :: [PipeCore () Name] -> PipeFlow (AnTEC () Name) 

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

Process a Core Flow module.