Closure values
Continuation values
Type alias for environments, stacks and so forth
Type alias for environments, stacks and so forth
Extra value types which come with this extension.
Type alias for the type of the exception handler register
Primitives - values which contain simple code segments.
Base machine value types Null value
Change the partial function to evaluate a single instruction to handle construction and use of our extended continuations.
Change the partial function to evaluate a single instruction to handle construction and use of our extended continuations.
Note this partial function is orElse'd in front of the superclass evaluator, so these new evaluators will replace those in SECDBase.
Rule to execute one step of this machine.
Rule to execute one step of this machine.
The extra exception handler register.
Raise a machine exception
Raise a machine exception
This handler throws the exception given as its argument to the continuation currently stored in the exception handler register.
Machine registers
Machine registers
A little work is needed here to ensure that these registers are printed in a reasonable way when we turn on debugging.
(Since version 1.2.1) Use PrettyPrinter.any instead.
Trait implementing this SECD machine extension