Safe Haskell | Safe-Infered |
---|
Single step evalation for the Disciple Core language.
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. |
:: 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.
:: 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.