Safe Haskell | None |
---|---|
Language | Haskell98 |
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 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.