Simple content addressable storage for localStorage.
A Hash function generates keys for values to be stored.
A Serialize function generates a key, content, and a deserializer function that can be used to deserialize the content back to its original form.
Conceptually, a Store contains a value of type a, and is backed by some sort of (possibly persistent) Storage.
Map a Store focused on a to a Store focused on b.
Get a Store's value.
Compute a new value to focus on, given the entire Store as context.
Create a Store focused on a particular value of type a at the provided Key.