vault-0.2.0.4: a persistent store for values of arbitrary types

Safe HaskellNone

Data.Vault

Contents

Synopsis

Synopsis

A persistent store for values of arbitrary types.

Vault

type Vault = Vault RealWorld

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.

 type Vault :: *
 instance Monoid Vault

type Key = Key RealWorld

Keys for the vault.

 type Key :: * -> *

empty :: Vault

The empty vault.

newKey :: IO (Key a)

Create a new key for use with a vault.

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

Lookup the value of a key in the vault.

insert :: Key a -> a -> Vault -> Vault

Insert a value for a given key. Overwrites any previous value.

adjust :: (a -> a) -> Key a -> Vault -> Vault

Adjust the value for a given key if it's present in the vault.

delete :: Key a -> Vault -> Vault

Delete a key from the vault.

union :: Vault -> Vault -> Vault

Merge two vaults (left-biased).

Locker

type Locker = Locker RealWorld

A persistent store for a single value.

 type Locker :: *

lock :: Key a -> a -> Locker

Put a single value into a Locker.

unlock :: Key a -> Locker -> Maybe a

Retrieve the value from the Locker.