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

UntypedPlutusCore.Transform.Inline

Description

An inlining pass.

This pass is essentially a copy of the PIR inliner, and should be KEPT IN SYNC with it. It's hard to do this with true abstraction, so we just have to keep two copies reasonably similar.

However, there are some differences. In the interests of making it easier to keep things in sync, these are explicitly listed in Note [Differences from PIR inliner]. If you add another difference, please note it there! Obviously fewer differences is better.

See Note [The problem of inlining destructors] for why this pass exists.

Synopsis

Documentation

inline Source #

Arguments

∷ ∀ name uni fun m a. ExternalConstraints name uni fun m 
Bool

inline constants

InlineHints name a 
BuiltinSemanticsVariant fun 
Term name uni fun a 
→ m (Term name uni fun a) 

Inline simple bindings. Relies on global uniqueness, and preserves it. See Note [Inlining and global uniqueness]

newtype InlineHints name a Source #

Constructors

InlineHints 

Fields

Instances

Instances details
Monoid (InlineHints name a) Source # 
Instance details

Defined in PlutusCore.Annotation

Methods

memptyInlineHints name a Source #

mappendInlineHints name a → InlineHints name a → InlineHints name a Source #

mconcat ∷ [InlineHints name a] → InlineHints name a Source #

Semigroup (InlineHints name a) Source # 
Instance details

Defined in PlutusCore.Annotation

Methods

(<>)InlineHints name a → InlineHints name a → InlineHints name a Source #

sconcatNonEmpty (InlineHints name a) → InlineHints name a Source #

stimesIntegral b ⇒ b → InlineHints name a → InlineHints name a Source #

Show (InlineHints name a) Source # 
Instance details

Defined in PlutusCore.Annotation

Methods

showsPrecIntInlineHints name a → ShowS Source #

showInlineHints name a → String Source #

showList ∷ [InlineHints name a] → ShowS Source #