这看起来应该很容易,但是如果我使用的是 AcidState 的 Data.Acid.Memory.Pure 模块,如何从查询中获得纯值。我想我可以将这个问题概括为“我如何从 Update monad 中获得任何价值?”。你看,我正在尝试编写一个执行以下常规任务的测试:
- 用一个对象更新一个纯 AcidState
- 使用 IxSet 查询超出状态的对象
- 比较查询对象和更新返回的对象是否相等。
我需要一个纯“布尔”,以便轻松与测试框架集成。起初我以为我会简单地使用 Control.Monad.State 中的 runState,但我错了(或者只是做得不对)。我应该怎么办?