Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A simple beta-reduction pass.
Synopsis
- beta ∷ Term tyname name uni fun a → Term tyname name uni fun a
- betaPass ∷ (Typecheckable uni fun, GEq uni, Applicative m, Ord a) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a
- betaPassSC ∷ (Typecheckable uni fun, GEq uni, MonadQuote m, Ord a) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a
Documentation
beta ∷ Term 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 #