Generalize lazy memory model using HasMacawLazySimulatorState
#358
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This introduces a
HasMacawLazySimulatorState
data type, which provides a "classy lens" for accessing aMacawLazySimulatorState
within some Crucible personality type. It also generalizes the lazymacaw-symbolic
memory model inData.Macaw.Symbolic.Memory.Lazy
to be polymorphic overHasMacawLazySimulatorState
instances. The upside is that it is now possible to use the lazy memory model at other personality types besides justMacawLazySimulatorState
, making it much easier to extend the memory model.Because there is a
HasMacawLazySimulatorState
instance forMacawLazySimulatorState
, existing code that usesMacawLazySimulatorState
should continue to compile without changes.Fixes #357.