-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generalize lazy memory model using HasMacawLazySimulatorState
This introduces a `HasMacawLazySimulatorState` data type, which provides a "classy lens" for accessing a `MacawLazySimulatorState` within some Crucible personality type. It also generalizes the lazy `macaw-symbolic` memory model in `Data.Macaw.Symbolic.Memory.Lazy` to be polymorphic over `HasMacawLazySimulatorState` instances. The upside is that it is now possible to use the lazy memory model at other personality types besides just `MacawLazySimulatorState`, making it much easier to extend the memory model. Because there is a `HasMacawLazySimulatorState` instance for `MacawLazySimulatorState`, existing code that uses `MacawLazySimulatorState` should continue to compile without changes. Fixes #357.
- Loading branch information
1 parent
35b5fcd
commit bac4c23
Showing
3 changed files
with
27 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters