Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 669 Bytes

README.md

File metadata and controls

20 lines (15 loc) · 669 Bytes

Vault

A typed, persistent store for values of arbitrary types. This is a port of the haskell Vault library Heinrich Apfelmus.

Think of it as Map that can store for values of arbitrary types, but it's type-safe. You can store of any types by creating Key a first, this key used to parameterized the type you are going to store in vault.

In summary a vault API:

data Vault
data Key a

newKey :: forall e a. Eff (ref :: REF | e) (Key a)
empty  :: Vault
lookup :: forall a. Key a -> Vault -> Maybe a
insert :: forall a. Key a -> a -> Vault -> Vault
delete :: forall a. Key a -> Vault -> Vault