Page
Library
Module
Module type
Parameter
Class
Class type
Source
Store is a library to add snapshotting capabilities to imperative data structure with a low runtime cost and safe, user-friendly APIs. It is designed for (and works best with) applications that exploit backtracking algorithms, such as SMT solvers, type-checking and type-inference algorithms.
The design and implementation of snapshottable references is described in the ICFP'24 paper:
We then added support for "storable types", which let users add backtracking logic for their own, custom data structures. This is described in the JFLA'26 paper:
The core of the data structure, including snapshottable references and mechanisms for user-defined storable types, are documented in store/store.mli.
We also offer the following broadly useful storable types: