vault-0.1.0.0: a typed, persistent store for values of arbitrary types

Safe HaskellSafe-Infered

Data.Vault

Synopsis

Documentation

type Vault = Vault RealWorldSource

A typed, 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.

 instance Monoid Vault

type Key = Key RealWorldSource

Keys for the vault.

 Key :: * -> *

empty :: VaultSource

The empty vault.

newKey :: IO (Key a)Source

Create a new key for use with a vault.

lookup :: Key a -> Vault -> Maybe aSource

Lookup the value of a key in the vault.

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.

delete :: Key a -> Vault -> VaultSource

Delete a key from the vault.

union :: Vault -> Vault -> VaultSource

Merge two vaults (left-biased).