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.