| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusIR.Compiler
Synopsis
- compileProgram :: Compiling m uni fun a => Program TyName Name uni fun a -> m (PLCProgram uni fun a)
- compileToReadable :: forall m uni fun a b. (Compiling m uni fun a, b CostingPart uni fun), Default (RewriteRules uni fun)) => TypeCheckConfig uni fun -> CompilationCtx uni fun a
- runCompilerPass :: (Compiling m uni fun a, b ~ Provenance a) => m (Pass m tyname name uni fun b) -> Term tyname name uni fun b -> m (Term tyname name uni fun b)
- simplifier :: Compiling m uni fun a => m (Pass m TyName Name uni fun (Provenance a))
Documentation
compileProgram :: Compiling m uni fun a => Program TyName Name uni fun a -> m (PLCProgram uni fun a) #
compileToReadable :: forall m uni fun a b. (Compiling m uni fun a, b ~ Provenance a) => Program TyName Name uni fun b -> m (Program TyName Name uni fun b) #
The 1st half of the PIR compiler pipeline up to floating/merging the lets. We stop momentarily here to give a chance to the tx-plugin to dump a "readable" version of pir (i.e. floated).
compileReadableToPlc :: forall m uni fun a b. (Compiling m uni fun a, b ~ Provenance a) => Program TyName Name uni fun b -> m (PLCProgram uni fun a) #
The 2nd half of the PIR compiler pipeline.
Compiles a Term into a PLC Term, by removing/translating step-by-step the PIR's language constructs to PLC.
Note: the result *does* have globally unique names.