plutus-core-1.60.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusIR.Transform.Inline.CallSiteInline

Description

Call site inlining machinery. We inline if the size of the inlined result is not larger. See Note [Inlining and beta reduction of functions].

Synopsis

Documentation

applyAndBetaReduce #

Arguments

:: forall tyname name uni fun ann. InliningConstraints tyname name uni fun 
=> Term tyname name uni fun ann

The rhs of the variable, should have been renamed already

-> AppContext tyname name uni fun ann

The arguments, already processed

-> InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) 

Apply the RHS of the given variable to the given arguments, and beta-reduce the application, if possible.

callSiteInline #

Arguments

:: forall tyname name uni fun ann. InliningConstraints tyname name uni fun 
=> AstSize

The term size if it were not inlined.

-> InlineVarInfo tyname name uni fun ann

The VarInfo of the variable (the head of the term).

-> AppContext tyname name uni fun ann

The application context of the term, already processed.

-> InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) 

Consider inlining a variable. For applications, consider whether to apply and beta reduce.