Copyright | (c) Julian Grove and Aaron Steven White 2025 |
---|---|
License | MIT |
Maintainer | julian.grove@gmail.com |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Framework.Lambda.Terms
Description
We encode (untyped) λ-calculus, with constants, and including a definition of probabilistic programs.
Synopsis
- betaDeltaNormal :: DeltaRule -> Term -> Term
- betaEtaNormal :: Term -> Term
- betaNormal :: Term -> Term
- type Constant = Either String Double
- dCon :: Double -> Term
- type DeltaRule = Term -> Maybe Term
- etaNormal :: Term -> Term
- freeVars :: Term -> [VarName]
- fresh :: [Term] -> [VarName]
- sCon :: String -> Term
- subst :: VarName -> Term -> Term -> Term
- data Term
- (@@) :: Term -> Term -> Term
- (&) :: Term -> Term -> Term
Documentation
betaDeltaNormal :: DeltaRule -> Term -> Term Source #
Beta normal forms, taking delta rules into account.
betaEtaNormal :: Term -> Term Source #
Beta-eta normal forms.
betaNormal :: Term -> Term Source #
Beta normal forms.
type Constant = Either String Double Source #
Constants are indexed by either strings or real numbers.