@@ -1,20 +1,56 @@
1−### Vault
1+# Vault
22
3−A typed, persistent store for values of arbitrary types. This is a port of the haskell [Vault](https://github.com/HeinrichApfelmus/vault) library Heinrich Apfelmus.
3+[](https://github.com/purescript-community/purescript-vault/actions?query=workflow%3ACI+branch%3Amaster)
4+[](https://github.com/purescript-community/purescript-vault/releases)
5+[](https://pursuit.purescript.org/packages/purescript-vault)
6+[](https://github.com/nsaunders)
47
5−Think of it as ```Map``` that can store for values of arbitrary types, but it's type-safe.
6−You can store of any types by creating ```Key a``` first, this key used to parameterized the
7−type you are going to store in vault.
8+A typed, persistent store for values of arbitrary types. This is a port of the haskell [Vault](https://github.com/HeinrichApfelmus/vault) library Heinrich Apfelmus.
89
9−In summary a vault API:
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.
1011
11−```haskell
12+```purescript
1213data Vault
1314data Key a
1415
15−newKey :: forall e a. Eff (ref :: REF | e) (Key a)
16+newKey :: forall a. Effect (Key a)
1617empty :: Vault
1718lookup :: forall a. Key a -> Vault -> Maybe a
1819insert :: forall a. Key a -> a -> Vault -> Vault
1920delete :: forall a. Key a -> Vault -> Vault
2021```
22+
23+## Installation
24+
25+Install `vault` with [Spago](https://github.com/purescript/spago):
26+
27+```sh
28+spago install vault
29+```
30+
31+## Quick start
32+
33+The quick start hasn't been written yet (contributions are welcome!). The quick start covers a common, minimal use case for the library, whereas longer examples and tutorials are kept in the [docs directory](./docs).
34+
35+## Documentation
36+
37+`vault` documentation is stored in a few places:
38+
39+1. Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-vault).
40+2. Written documentation is kept in the [docs directory](./docs).
41+3. Usage examples can be found in [the test suite](./test).
42+
43+If you get stuck, there are several ways to get help:
44+
45+- [Open an issue](https://github.com/purescript-community/purescript-vault/issues) if you have encountered a bug or problem.
46+- Ask general questions on the [PureScript Discourse](https://discourse.purescript.org) forum or the [PureScript Discord](https://discord.com/invite/sMqwYUbvz6) chat.
47+
48+## Contributing
49+
50+You can contribute to `vault` in several ways:
51+
52+1. If you encounter a problem or have a question, please [open an issue](https://github.com/purescript-community/purescript-vault/issues). We'll do our best to work with you to resolve or answer it.
53+
54+2. If you would like to contribute code, tests, or documentation, please [read the contributor guide](./CONTRIBUTING.md). It's a short, helpful introduction to contributing to this library, including development instructions.
55+
56+3. If you have written a library, tutorial, guide, or other resource based on this package, please share it on the [PureScript Discourse](https://discourse.purescript.org)! Writing libraries and learning resources are a great way to help this library succeed.