Safe Haskell | Safe-Infered |
---|
Single step evaluator for the Disciple Core language.
This is a direct implementation of the operational semantics and is by no means fast, or a substitute for a real interpreter. Programs run with this evaluator will have an asymptotic complexity much worse than if they were compiled. This evaluator is intended for experimenting with the language semantics, and not running actual programs.
- data StepResult
- force :: Store -> Exp () Name -> StepResult
- step :: Store -> Exp () Name -> StepResult
Documentation
data StepResult Source
The result of stepping some expression.
StepProgress Store (Exp () Name) | Expression progressed to a new state. |
StepDone | Expression cannot step and is a (weak) value. We're done already. |
StepStuck | Expression cannot step, and is not a (weak) value. The original expression was mistyped, or something is wrong with the interpreter. |
StepStuckMistyped (Error () Name) | Expression is stuck, and we know for sure it's mistyped. |