Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
We'll start off with a monad in which to manipulate ABTs; we'll need some state for fresh variable generation.
Next, we'll define the operators for a tiny lambda calculus as a datatype indexed by arities.
A monad transformer for small step operational semantics.
stepsExhausted :: Applicative m => StepT m α Source
To indicate that a term is in normal form.
star :: Monad m => (α -> StepT m α) -> α -> m α Source
The reflexive-transitive closure of a small-step operational semantics.
identityTm :: M (Tm0 Lang) Source
λx.x