Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data EvalState name = EvalState {}
- evalExpr :: (Pretty name, Ord name) => LambdaExpr name -> Eval name (LambdaExpr name)
- subGlobals :: Ord name => Map name (LambdaExpr name) -> LambdaExpr name -> LambdaExpr name
- betaReduce :: (Eq name, Pretty name) => LambdaExpr name -> LambdaExpr name -> Eval name (LambdaExpr name)
- alphaConvert :: Eq name => [name] -> LambdaExpr name -> Eval name (LambdaExpr name)
- etaConvert :: Eq n => LambdaExpr n -> LambdaExpr n
- freeVarsOf :: Eq n => LambdaExpr n -> [n]
Documentation
The evaluation state
evalExpr :: (Pretty name, Ord name) => LambdaExpr name -> Eval name (LambdaExpr name) Source #
Evaluate an expression
subGlobals :: Ord name => Map name (LambdaExpr name) -> LambdaExpr name -> LambdaExpr name Source #
Look up free vars that have global bindings and substitute them
betaReduce :: (Eq name, Pretty name) => LambdaExpr name -> LambdaExpr name -> Eval name (LambdaExpr name) Source #
Function application
alphaConvert :: Eq name => [name] -> LambdaExpr name -> Eval name (LambdaExpr name) Source #
Rename abstraction parameters to avoid name captures
etaConvert :: Eq n => LambdaExpr n -> LambdaExpr n Source #
Eliminite superfluous abstractions
freeVarsOf :: Eq n => LambdaExpr n -> [n] Source #
Find the free variables in an expression