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.
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.