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

PlutusIR.Transform.Beta

Description

A simple beta-reduction pass.

Synopsis

Documentation

betaTerm tyname name uni fun a → Term tyname name uni fun a Source #

Recursively apply the beta transformation on the code, both for the terms

    ( (x : A). M) N
    ==>
    let x : A = N in M

and types

    (/ a. (x : a) . x) {A}
    ==>
    let a : * = A in
    ( (x : A). x)

betaPass ∷ (Typecheckable uni fun, GEq uni, Applicative m, Ord a) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a Source #

betaPassSC ∷ (Typecheckable uni fun, GEq uni, MonadQuote m, Ord a) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a Source #