Я использую acid-state в проекте, и мне это очень нравится. Мне нравится, как легко добавлять постоянство к простым типам Haskell без особого шаблона.Использовать кислотное состояние как журнал событий в Haskell
Насколько я понимаю, кислотное состояние хранит журнал событий, а не записывает все новое состояние при каждом обновлении. То, что я ищу, - это способ просмотреть журнал последних изменений состояния из приложения в виде списка (только для чтения). (Что-то вроде git log
, хотя мне не нужно разветвляться или быть в состоянии вернуться к более раннему фиксации.)
Конечно, я могу написать в свой отдельный файл журнала с подробными сведениями о всех изменениях состояния или даже моделировать мои данные как список различий, но я предпочитаю то, что автоматически, и позволяет мне использовать простые типы данных как можно больше.
Есть ли библиотека, подобная кислотной форме, или, возможно, некоторые внутренние функциональные возможности кислотного состояния, которые я мог бы использовать для этого?
Рассматривая исходный код для Acid-State, вы можете увидеть, как читать файл событий, чтобы получить список записей с использованием метода обновления и данных, но ни один из них не отображается в API. –