a persistent store for values of arbitrary types
|Version on this page:||0.3.0.4|
|LTS Haskell 20.23:||0.3.1.5@rev:3|
|Stackage Nightly 2023-05-31:||0.3.1.5@rev:3|
|Latest on Hackage:||0.3.1.5@rev:3|
Module documentation for 0.3.0.4
Vault is a tiny library that provides a single data structure called vault.
A vault is a type-safe, persistent storage for values of arbitrary types. Like
IORef, I want to be able to store values of any type in it, but unlike
IORef, I want the storage space to behave like a persistent, first-class data structure, as appropriate for a purely functional language.
It is analogous to a bank vault, where you can access different bank boxes with different keys; hence the name.
In other words, a vault is an abstract data type with the following basic signature
data Key a data Vault newKey :: IO (Key a) empty :: Vault lookup :: Key a -> Vault -> Maybe a insert :: Key a -> a -> Vault -> Vault delete :: Key a -> Vault -> Vault
A few common functions for finite maps, like
union, are provided as well.
This library was created thanks to the feedback on my blog post Vault - a persistent store for values of arbitrary types.
The whole thing is available on hackage, so you just have to type
cabal update cabal install vault
Use the issue tracker or send an email to the maintainer.
Changelog for the
0.3.0.4 — Bump upper version bound for the
0.3.0.3 — Bump upper version bound for the
0.3.0.2 — Fix tarball.
0.3.0.1 — Use CPP to reduce code duplication.
- Split modules into Lazy and Strict variants, no default choice.
- Add Hashable instance to
Data.Unique.Reallyfor all implementations.