Safe Haskell | None |
---|
A persistent store for values of arbitrary types.
The Vault
type in this module is strict in the keys but lazy in the values.
- type Vault = Vault RealWorld
- type Key = Key RealWorld
- empty :: Vault
- newKey :: IO (Key a)
- lookup :: Key a -> Vault -> Maybe a
- insert :: Key a -> a -> Vault -> Vault
- adjust :: (a -> a) -> Key a -> Vault -> Vault
- delete :: Key a -> Vault -> Vault
- union :: Vault -> Vault -> Vault
- type Locker = Locker RealWorld
- lock :: Key a -> a -> Locker
- unlock :: Key a -> Locker -> Maybe a
Vault
type Vault = Vault RealWorldSource
A persistent store for values of arbitrary types.
This variant is the simplest and creates keys in the IO
monad.
See the module Data.Vault.ST if you want to use it with the ST
monad instead.
insert :: Key a -> a -> Vault -> VaultSource
Insert a value for a given key. Overwrites any previous value.
adjust :: (a -> a) -> Key a -> Vault -> VaultSource
Adjust the value for a given key if it's present in the vault.