Config
Interpreter configuration
The (abstract) interpreter can be seen as a push-down automaton that transits between the configurations where the stack is the implicit call stack of the meta-language.
It's important that the configuration is finite for the analysis to terminate.
For soundness, we need to compute fixed point of the cache, which maps configuration to evaluation result.
Thanks to heap monotonicity, heap is not part of the configuration.
This class is only used for the purpose of documentation.