Safe Haskell | None |
---|---|
Language | Haskell2010 |
A persistent store for values of arbitrary types.
The
Vault
type in this module is strict in the keys but lazy in the values.
Synopsis
- 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 RealWorld Source #
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 -> Vault Source #
Insert a value for a given key. Overwrites any previous value.
adjust :: (a -> a) -> Key a -> Vault -> Vault Source #
Adjust the value for a given key if it's present in the vault.