A vault is a persistent store for values of arbitrary types. It's like
having first-class access to the storage space behind IORefs.

The data structure is analogous to a bank vault, where you can access
different bank boxes with different keys; hence the name.

Also provided is a locker type, representing a store for a single element.
Import vault as wip/hs-vault.