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

Safe HaskellNone
LanguageHaskell98

Data.Vault.Lazy

Contents

Description

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

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 Key = Key RealWorld #

Keys for the vault.

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.

lock :: Key a -> a -> Locker #

Put a single value into a Locker.

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

Retrieve the value from the Locker.