A typed, persistent store for values of arbitrary types.
This variant has more complex types so that you can create keys in the
See the module Data.Vault if you'd like to use a simpler version with the
You can also use both variants simultaneously; they share a single representation.
Insert a value for a given key. Overwrites any previous value.
Adjust the value for a given key if it's present in the vault.