@@ -5,9 +5,9 @@
5[](https://pursuit.purescript.org/packages/purescript-vault)
5[](https://pursuit.purescript.org/packages/purescript-vault)
6[](https://github.com/nsaunders)
6[](https://github.com/nsaunders)
8−A typed, persistent store for values of arbitrary types. This is a port of the Haskell [Vault](https://github.com/HeinrichApfelmus/vault) library by Heinrich Apfelmus.
8+A typed, persistent store for values of arbitrary types, ported from the Haskell [Vault](https://github.com/HeinrichApfelmus/vault) library by Heinrich Apfelmus.
10−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.
10+Think of a vault like a map that can store any value in a type-safe manner. The first step is to generate a new `Key a` value using the `newKey` function. Then, use `insert`, `lookup`, `delete`, etc., just like their [Data.Map](https://pursuit.purescript.org/packages/purescript-ordered-collections/3.0.0/docs/Data.Map) analogs.
12```purescript
12```purescript
@@ -15,8 +15,8 @@ data Key a
16newKey :: forall a. Effect (Key a)
16newKey :: forall a. Effect (Key a)
17empty :: Vault
17empty :: Vault
18−lookup :: forall a. Key a -> Vault -> Maybe a
19insert :: forall a. Key a -> a -> Vault -> Vault
18insert :: forall a. Key a -> a -> Vault -> Vault
19+lookup :: forall a. Key a -> Vault -> Maybe a
20delete :: forall a. Key a -> Vault -> Vault
20delete :: forall a. Key a -> Vault -> Vault
21adjust :: forall a. (a -> a) -> Key a -> Vault -> Vault
21adjust :: forall a. (a -> a) -> Key a -> Vault -> Vault