persistent state

Pls rebase no merge

Using a pull request for code review purposes
I don't think you need to call (hash-copy) on the result from (read), it should return a hash table anyway.