| Safe Haskell | None |
|---|
DDC.Core.Eval.Step
Description
Single step evalation for the Disciple Core language.
- data StepResult
- = StepProgress Store (Exp () Name)
- | StepDone
- | StepStuck
- | StepMistyped (Error () Name)
- force :: Store -> Exp () Name -> StepResult
- step :: Store -> Exp () Name -> StepResult
- isValue :: Store -> Exp a Name -> Bool
- isWeakValue :: Store -> Exp a Name -> Bool
Documentation
data StepResult Source
The result of stepping some expression.
Constructors
| 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. |
| StepMistyped (Error () Name) | Expression is stuck, and we know for sure it's mistyped. |
Instances
| Show StepResult |
Arguments
| :: Store | Current store. |
| -> Exp () Name | Expression to force. |
| -> StepResult | Result of forcing it. |
Single step a core expression to a value.
As opposed to step, if the provided expression is the location of a
Thunk, then the thunk will be forced.
Arguments
| :: Store | Current store. |
| -> Exp () Name | Expression to step. |
| -> StepResult | Result of stepping it. |
Single step a code expression to a weak value.
As opposed to force, if the provided expression is the location of a
Thunk, then the thunk is not forced.