Correct, Thread-safe cache in Clojure